机器学习之无监督学习——聚类

机器学习之无监督学习——聚类

  • 无监督学习
  • 一、基于划分的聚类方法
    • 1、基于划分的方法 简介
      • A、概念
      • B、分组
      • C、分组与样本 对应关系
      • D、硬聚类 与 软聚类
  • 二、基于层次的聚类方法
    • 1、基于层次的聚类方法 概念 :
    • 2、基于层次的聚类方法 :
      • A、聚合层次聚类 ( 叶子节点到根节点 )
        • 聚合层次聚类 图示
        • 切割点说明
      • B、划分层次聚类 ( 根节点到叶子节点 )
        • 划分层次聚类 图示
        • 切割点说明
      • 基于层次的聚类方法 切割点选取
    • 3、算法性能
  • 三、基于密度的方法
    • 1 . 基于距离聚类的缺陷 :
    • 2 . 基于密度的聚类方法
    • 3 . 基于密度的聚类方法 算法优点

无监督学习

在无监督学习中,数据是无标签的。由于大多数真实世界的数据都没有标签,这些算法特别有用。无监督学习分为聚类和降维。聚类用于根据属性和行为对象进行分组。这与分类不同,因为这些组不是你提供的。聚类的一个例子是将一个组划分成不同的子组(例如,基于年龄和婚姻状况),然后应用到有针对性的营销方案中。降维通过找到共同点来减少数据集的变量。大多数大数据可视化使用降维来识别趋势和规则。

一、基于划分的聚类方法

1、基于划分的方法 简介

基于划分的方法 , 又叫基于距离的方法 , 基于相似度的方法 ;

A、概念

给定 n 个数据样本 , 使用划分方法 , 将数据构建成 k 个划分 ( k ≤ n ) , 每个划分代表一个聚类 ;

B、分组

将数据集 分成 k 组 , 每个分组至少要有一个样本 ;

C、分组与样本 对应关系

每个分组有1 个或多个样本对象 ( 1 对多 ) , 每个对象同时只能在1 个分组中 ( 1 对 1 ) ;

D、硬聚类 与 软聚类

每个数据对象只能属于一个组 , 这种分组称为硬聚类 ; 软聚类每个对象可以属于不同的组 ;

二、基于层次的聚类方法

1、基于层次的聚类方法 概念 :

将数据集样本对象排列成树结构 , 称为聚类树 , 在指定的层次(步骤)上切割数据集样本 , 切割后时刻的聚类分组就是聚类算法的聚类结果 ;

2、基于层次的聚类方法 :

一棵树可以从叶子节点到根节点 , 也可以从根节点到叶子节点 , 基于这两种顺序 , 衍生出两种方法分支 , 分别是聚合层次聚类 , 划分层次聚类 ;

A、聚合层次聚类 ( 叶子节点到根节点 )

开始时 , 每个样本对象自己就是一个聚类 ,称为原子聚类 , 然后根据这些样本之间的 相似性 , 将这些样本对象(原子聚类) 进行合并 ;

常用的聚类算法 : 大多数的基于层次聚类的方法 , 都是聚合层次聚类类型的 ; 这些方法从叶子节点到根节点 , 逐步合并的原理相同 ; 区别只是聚类间的相似性计算方式不同 ;

聚合层次聚类 图示

在这里插入图片描述① 初始状态 : 最左侧五个数据对象 , 每个都是一个聚类 ;

② 第一步 : 分析相似度 , 发现 a, b相似度很高 , 将 { a , b } 分到一个聚类中 ;

③ 第二步 : 分析相似度 , 发现 d,e 相似度很高 , 将 {d,e} 分到一个聚类中 ;

④ 第三步 : 分析相似度 , 发现c与d,e相似度很高 , 将c 数据放入 {d,e} 聚类中 , 组成 {c,d,e} 聚类 ;

⑤ 第四步 : 分析相似度 , 此时要求的相似度很低就可以将不同的样本进行聚类 , 将前几步生成的两个聚类 , 合并成一个聚类 {a,b,c,d,e} ;

切割点说明

实际进行聚类分析时 , 不会将所有的步骤走完 , 这里提供四个切割点 , 聚类算法进行聚类时 , 可以在任何一个切割点停止 , 使用当前的聚类分组当做聚类结果 ;

① 切割点 1 : 在切割点1 停止 , 会得到5 个聚类分组 , {a} ,{b}, {c}, {d} , {e} ;

② 切割点 2 : 在切割点2 停止 , 会得到4 个聚类分组 ,{a,b},{c},{d},{e} ;

③ 切割点3 : 在切割点 3 停止 , 会得到 3 个聚类分组{a,b} , { c } {c}, {d,e} ;

④ 切割点 4 : 在切割点 4 停止 , 会得到 2 个聚类分组 ;{a,b} ,{c,d,e} ;

⑤ 走完整个流程 : 会得到 1 个聚类分组 {a,b,c,d,e} ;

B、划分层次聚类 ( 根节点到叶子节点 )

开始时 , 整个数据集的样本在一个总的聚类中 , 然后根据样本之间的相似性 , 不停的切割 , 直到完成要求的聚类操作 ;

划分层次聚类 图示

在这里插入图片描述
① 初始状态 : 最左侧五个数据对象,属于一个聚类 ;

② 第一步 : 分析相似度 , 切割聚类 , 将 {c,d,e} 与{a,b} 划分成两个聚类 ;

③ 第二步 : 分析相似度 , 将{c,d,e} 中的{c} 与 {d,e} 划分成两个聚类 ;

④ 第三步 : 分析相似度 , 将 {d,e} 拆分成{d} 和 {e} 两个聚类 ;

⑤ 第四步 : 分析相似度 , 将{a,b} 拆分成 {a} 和 {b} 两个聚类 , 至此所有的数据对象都划分成了单独的聚类 ;

切割点说明

实际进行聚类分析时 , 不会将所有的步骤走完 , 这里提供四个切割点 , 聚类算法进行聚类时 , 可以在任何一个切割点停止 , 使用当前的聚类分组当做聚类结果 ;

① 切割点1 : 在切割点 1 停止 , 会得到 1 个聚类分组 {a,b,c,d,e} ;

② 切割点 2 : 在切割点2 停止 , 会得到2 个聚类分组 {a,b} , {c,d,e} ;

③ 切割点 3 : 在切割点 3停止 , 会得到3个聚类分组{a,b} ,{c}, {d,e} ;

④ 切割点4 : 在切割点 4 停止 , 会得到 4 个聚类分组 ,{a,b} ,{c}, {d} , {e} ;

⑤ 走完整个流程 : 会得到 5 个聚类分组 , {a} , {b}, {c}, {d} , {e} ;

基于层次的聚类方法 切割点选取

1 . 算法终止条件( 切割点 ) : 用户可以指定聚类操作的算法终止条件 , 即上面图示中的切割点 , 如 :

① 聚类的最低个数 : 聚合层次聚类中 , n 个样本 , 开始有n 个聚类 , 逐步合并 , 聚类个数逐渐减少 , 当聚类个数达到最低值 min , 停止聚类算法 ;

② 聚类最高个数 : 划分层次聚类中 , n 个样本 , 开始有 1 个聚类 , 逐步划分 , 聚类个数逐渐增加 , 当聚类个数达到最大值 max , 停止聚类算法 ;

③ 聚类样本的最低半径 : 聚类的数据样本范围不能无限扩大 , 指定一个阈值 , 只有将该阈值内的样本放入一组 ; 半径指的是所有对象距离其平均点的距离 ;

2 . 切割点回退问题 : 切割点一旦确定 , 便无法回退 ; 这里以聚合层次聚类为例 :

① 处于切割点 4 : 如已经执行到了步骤三 , 此时处于切割点 4 , 聚类分组为 {a,b} , {c,d,e} ;

② 试图回退到切割点 3 : 想要会回退到切割点 3 的状态 , 视图将聚类分组恢复成 {a,b} , {c}, {d,e} ;

③ 无法回退 : 该操作是无法实现的 , 聚类分组一旦合并或分裂 , 此时就无法回退 ;

3、算法性能

基于层次的聚类方法的时间复杂度为 O(N^2) , 如果处理的样本数量较大 , 性能存在瓶颈 ;

三、基于密度的方法

1 . 基于距离聚类的缺陷 :

很多的聚类方法 , 都是 基于样本对象之间的距离 ( 相似度 ) 进行的 , 这种方法对于任意形状的分组 , 就无法识别了 , 如下图左侧的聚类模式 ; 这种情况下可以使用基于密度的方法进行聚类操作 ;

基于距离的方法 , 是基于欧几里得距离函数得来 , 其基本的形状都是球状 , 或凸形状 , 如下图右侧的形状 ; 无法计算出凹形状 , 如下图左侧的形状 ;
在这里插入图片描述

2 . 基于密度的聚类方法

相邻的区域内 样本对象 的密度超过某个阈值 , 聚类算法就继续执行 , 如果周围区域密度都很小 , 那么停止聚类方法 ;

① 密度 : 某单位大小区域内的样本对象个数 ;

② 聚类分组要求 : 在聚类分组中 , 每个分组的数据样本密度都 必须达到密度要求的最低阈值 ;

3 . 基于密度的聚类方法 算法优点

① 排除干扰 : 过滤噪音数据 , 即密度很小 , 样本分布稀疏的数据 ;

② 增加聚类模式复杂度 : 聚类算法可以识别任意形状的分布模式 , 如上图左侧的聚类分组模式 ;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/306311.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2020 . NET大会日程公布!行程亮点全曝光

|倒计时5天文末有福利答应我看到最后|2020年12月19日由.NET众多社区联合组织主办的2020年中国.NET开发者大会将于苏州盛大开幕时间:2020/12/19-12/20主题:开源、共享、创新地点:苏州人工智能产业园▽本次大会以“开源、共享、创新”为主题&am…

橡皮擦_日本推出改邪归正橡皮擦,看得我头顶一凉

▲▲▲点击查看▲▲▲日本,可以说是文具控的天堂。各种不按套路出牌,又十分合理有趣的文具,真是太多太多。就比如这块「改邪归正橡皮擦」:这么看,你可能看不出到底怎么个改邪归正法,但其实它的创作灵感来自…

三菱四节传送带控制梯形图_一文讲透FX5U PLC程序控制指令及步进梯形图编程

三菱PLC在80年代进入中国市场,已有30多年历史。由于三菱PLC编程易学,功能强大,深受中国用户喜爱。随着时间推移,市场上已经淘汰掉二代产品,关系图如下:说明90年代老型号2000年代老型号低端小型机FX0SFX1S中…

在 ASP.NET Core 中使用多种方式给 Action 传参

ASP.NET Core 是一个跨平台,开源的,轻量级,高性能 并且 高度模块化的web框架。在 ASP.NET Core MVC 中有很多种方式可以给 Action 方法传递参数,比如说:url方式,querystring方式,request header…

WinUI 3 Preview 3 发布了,再一次试试它的性能

1. WinUI 3在微软 Build 2020 开发者大会上,WinUI 团队宣布可公开预览的 WinUI 3 Preview 1,它让开发人员可以在 Win32 中使用 WinUI。最终 XAML 的新功能不再和 Windows SDK 绑定,所有新的 XAML 功能都将作为 WinUI 的一部分发布。作为 OS 的…

m苹果放n篮子_egg appple千万别翻译为“鸡蛋苹果”,老外听到会懵圈的

egg很熟悉,apple也很熟悉,可是egg apple就让人一脸懵了,鸡蛋苹果是啥玩意?难道中国人有番茄鸡蛋,而歪果仁喜欢鸡蛋炒苹果?1:egg apple 是什么意思?其实英国人眼中的茄子是 egg apple…

基于.NET Core的简单,跨平台,模块化的电子商务系统-SimplCommerce

SimplCommerce是基于.NET Core的简单,跨平台,模块化的电子商务系统官网:www.simplcommerce.com开源地址:https://github.com/simplcommerce/SimplCommerce高层架构在线演示(Azure网站)店面:http…

grade项目导入新external libraries_【易推荐】德意志银行学院中国项目启动

展翅高飞 开阔眼界探索新的机遇总会令人振奋不已。德意志银行集团(以下简称德意志银行或德银)举办了“德意志银行学院”项目(DB Academy,以下简称“德银学院”)。如果同学们有投身金融服务行业的志向,欢迎加入德银学院在中国的项目。“德银学院”项目为…

程序员过关斩将--请不要误会redis 6.0 的多线程

“你对redis的单线程是不是有点误会?“你对redis 6.0的多线程是不是也有点误会?“redis多线程一定可以提高性能吗?redis官方刚刚发布的6.0版本已经掀起了业界一阵热波,在这个版本中新加了很多新特性,如果你打开redis的…

python 防止转义_python字符串前加r、f、u、l 的区别

f-strings 是指以f或F 开头的字符串,其中以 {}包含的表达式会进行值替换。(目前支持python3.6版本)下面看下f-strings的使用方法基本使用(作用:替换值)在字符串前加r可防止字符串转义作用:没有转…

动手实现深度学习pytroch版

深度学习介绍: 数据预处理

c++ eos智能合约开发_[EOS智能合约]第二节:用EOS开发一个To-do List小应用

EOS Asia本教程原文作者为EOS Asia,亚洲最具技术实力和最国际化的EOS超级节点竞选者。EOS Asia 同时也是EOS Gems和Traffic Exchange Token这两个项目背后的开发者。本文由 DappReview 获得 EOS Asia 授权进行翻译并发表。本篇是EOS智能合约系列第二弹,该…

acwing2058. 笨拙的手指(进制转换)

题目含义: 给出一个二进制数,三进制数(这俩数有且一位是错误的) 请输出他们对应的十进制数 原题链接 视频讲解 问题难点: 其他进制转化为十进制算法 大数据的读入 string 按位异或运算(常用的ACSII码值)

使用Github部署Azure应用服务

上次我们介绍了如果使用Azure应用服务(不用虚机不用Docker使用Azure应用服务部署ASP.NET Core程序)。我们通过Visual studio新建一个项目后手动编译发布代码。然后通过FTP上传我们的发布文件。整个过程跟我们手动发布项目到IIS上其实没啥差别。这么操作有点繁琐,显然…

7搭建zabbix_监控03分布式监控Zabbix

监控03-分布式监控Zabbix一、Zabbix概述Zabbix是一个基于Web界面的分布式系统监控与网络设备监控系统,能够监控各种网络参数,并提供灵活的通知机制,以使管理员能快速定位故障并解决。由于zabbix server端与zabbix agent组成,可通过…

acwing2041. 干草堆(差分数组)

题目描述: 原题链接 视频讲解 差分算法(前缀和的逆运算) 差法算法(差分与前缀和的下标都从1开始,避免出现越界) 算法思路:给l,r区间内加上x,则表示为在l的位置+x,在r+1的位置上-x,就可抵消掉+x在r+1开始后的贡献,再利用前缀和就能一次求出答案

各纬度气候分布图_欧洲气候特征:以温带气候类型为主,是海洋性气候最显著的大洲...

气候是一个区域内大气物理特征的长期多年平均状态,是一种相对稳定的自然地理要素,包括气温、热量、降水、光照等气候要素组成。根据全球不同区域的气候特征来划分出不同的气候类型,主要的气候类型包括热带雨林气候、热带草原气候、热带沙漠气…

.NET 5开源项目:b站账号快速升级到 Lv6,每天自动签到,观看,分享,投币视频!...

推荐一个神奇的开源项目:BiliBiliToolhttps://github.com/RayWangQvQ/BiliBiliTool.Net 5 编写的B站(哔哩哔哩)任务工具,通过GitHub Actions实现每日线上自动运行任务:每日自动登录、观看、分享、投币视频,…

acwing2060. 奶牛选美(bfs)

题目描述: 题目描述:在一个二维矩阵中,有两个点的集合,找到最短的距离(从一个集合到另一个集合中)距离的计算方式为(曼哈顿距离) 曼哈顿距离:两点间的曼哈顿距离 = | x1 - x2 | + | y1 - y2 | 输出最短距离 原题链接 视频讲解 问题难点: 二维矩阵使用了字符类型存储 PI…

pandas用均值填充nan_Pandas学习笔记(三)

前言学习Pandas的最好方式就是多用它,只有在实际中多用,才能更好地掌握其中的技巧,这一次我们从数据的聚合来开始。GroupBy的使用聚合的意思指的是对数据框架中某一类型的数据进行整合,在整合后可以对其进行求和、求平均值等操作&…