无监督学习之聚类方法(K-Means、层次聚类)
一、导入
无监督学习中需要对无标记样本进行训练学习进而找到数据的内在性质和逻辑结构,聚类方法是为了为无监督学习的数据分析提供的基础学习方法。
聚类将数据集划分为若干个子集(每个子集称为类或者簇),如果一个样本只属于一个类(簇)则是硬聚类,如果某一个样本属于多个类那么就是软聚类。
二、评价指标
1、性能度量
确定了性能度量以后,可以直接将其作为聚类过程的优化目标,可以分为以下两类
外部指标
说明:需要有参考模型作为比较对象
对数据集D={X1, X2,…Xm}通过聚类得到的簇分类是C={c1, c2 …ck} ,参考模型的簇分类是C’={c1’, c2’, …ck’}
a:包含在c中属于相同簇且在c’中也属于相同簇的样本对
b:包含在c中属于相同簇且在c’中不属于相同簇的样本对
c:包含在c中不属于相同簇且在c’中属于相同簇的样本对
d:包含在c中不属于相同簇且在c’中不属于相同簇的样本对
注:由于每个样本对(Xi,Xj)(i<j)仅能出现在一个集合中,所以有a+b+c+d=m(m-1)/2
Jaccard系数\JC
JC=a(a+b+c)
FM指数
FMI=[(a(a+b))(a(a+c))]^1\2
Rand指数
RI=2(a+d)/m(m-1)
说明:以上指标取值均在0-1之间,值越大越好
内部指标
avg©:簇内样本点的平均距离,簇内所有样本点两两之间的距离求和再求均值
diam©:簇内距离最远的两个样本点间的距离
dmin属于不同簇的两个样本点,且两个样本点相比于簇内其他样本点相隔最近,该符号表示的就是满足这样的两点之间的距离
dcen:;两个簇的中心点的距离
DB指数
Dunn指数
说明:DBI越小越好;DI越大越好
2、距离计算\相似度
基本性质:非负性、同一性(当i=j时,dist(xi,xj)=0)、对称性、直递性\三角不等性。
当属性划分可以计算距离的时候是”连续属性“,例如{1,2,3};不可以直接计算距离的时候是“离散属性”,例如{飞机,汽车,火车}
对于连续属性可以用闵可夫斯基计算两个样本点的距离
对于离散属性需要DVM计算两个样本点的距离
闵可夫斯基距离
当p=2时为欧氏距离
当p=1时为曼哈顿距离
DVM
mu,a表示在属性u上取值为a的样本个数
mu,a,i表示在第i个样本簇中属性u上取值为a的样本数
闵可夫斯基可以与VDM结合处理混合属性,将两部分求和,具体可以阅读西瓜书;重要性不同时可以用加权距离计算距离
3、原型聚类
k-means
先看几张图片对该算法有一个直观的认识
这是一个没有标记的样本集,要对它进行聚合,K=2
随机生成两个中心点,也可以用样本点作为初始中心点
根据欧式距离公式,将样本点集合划分给两个不同的中心点。
将中心点移动到同色样本点(同一个颜色属于同一个簇)的均值处;此时完成一轮聚合操作。
和最开始相比,此刻初始中心点已经更新,开始第二次迭代,将数据点全部都清楚类标记,在按照前面三步的操作,进行样本点划分
上图满足了样本中心点不会再更新,即迭代完毕。
通过上面几个图的说明,不难看出K-Means是一个迭代的过程,
优化目标:就是最小化某类的中心点和属于该类的样本点的距离
至于选择K(中心点)的多少,可以按照肘部法则也可以根据实际需要进行设定
肘部法则:横轴是K取值,纵轴为lost function
局部最优(由于算法是迭代的,而且初始样本点的选取不同也会造成最终结果的不同)
学习向量量化LVQ
与K-Means不同的是,LVQ的样本是带有类别标记的
高斯混合聚类
4、密度聚类
####DBSCAN
5、层次聚类
层次聚类在不同层次对数据进行划分,形成树形结构,分为自底向上(聚合)自顶向下(分裂),都需要按照一定的规则进行操作,下面主要以聚合为例进行说明
AGNES采用自底向上的操作进行层次聚类
一开始所有的样本点都是一个类,接下来进行距离相近的类融合成一个新类知道满足K的要求为止。
其中两个类合并需要考虑两个类之间的距离,共有如下三种计算方式
最小距离:属于两个不同类的两个样本点,满足两点距离最近
最大距离:属于两个不同类的两个样本点,满足两点距离最远
均链接:属于两个不同类的任意两个样本点,两两的距离之和除以两个类的样本点个数的乘积。
说明:最小距离由两个簇的最近样本决定,最大距离由两个簇的最远样本决定,平均距离则由两个簇的所有样本决定。
满足最小距离的AGNES算法称为“单链接”算法
满足最大距离的AGNES算法称为“全链接”算法
满足均链接的AGNES算法称为”均链接“算法
例题:
D表示五个样本点的欧氏距离的矩阵
说明:该矩阵是对称阵
首先构建五各类Gi={Xi} i=12345
其中X3和X5距离为1,其他点之间的距离大于1,所以将G3和G5合并成G6={X3,X5}
目前有四个类。接下来继续合并
最小距离是X3X1之间,距离为2
将X1 合并到G6中变成G7={X1,X3,X5}
继续判断距离,X2和X4距离为4小于其特点之间的距离,G8={X2,X4}
所以,如果K为2的话,就是G7,G8两类
最后形成一个树形结构如下图
下面是西瓜书的例子
需要自己计算各个样本之间的距离,书上说采用dmax没有太明白,具体运用在哪个步骤中,后续学习中在更新吧
生成了如上图所示的树形结构,从叶子节点开(k=30)始,不断合并距离最近的聚类簇,最终到达根节点(k=1)
最后:聚类不存在固定的标准,距离计算是很多学习任务的核心技术。
无监督学习之聚类方法(K-Means、层次聚类)相关推荐
- 【数据挖掘】聚类算法 简介 ( 基于划分的聚类方法 | 基于层次的聚类方法 | 基于密度的聚类方法 | 基于方格的聚类方法 | 基于模型的聚类方法 )
文章目录 I . 聚类主要算法 II . 基于划分的聚类方法 III . 基于层次的聚类方法 IV . 聚合层次聚类 图示 V . 划分层次聚类 图示 VI . 基于层次的聚类方法 切割点选取 VII ...
- R语言层次聚类(hierarchical clustering):数据缩放、PCA聚类结果可视化、fpc包的clusterboot函数通过bootstrap重采样的方法评估hclust层次聚类的稳定性
R语言层次聚类(hierarchical clustering):数据缩放.PCA聚类结果可视化.fpc包的clusterboot函数通过bootstrap重采样的方法评估hclust层次聚类的稳定性 ...
- 聚类(Clustering):hierarchical clustering 层次聚类及其应用
聚类(Clustering):hierarchical clustering 层次聚类及其应用 clustering实现: from numpy import * import math #基于mat ...
- 机器学习笔记(九)聚类算法Birch和层次聚类Hierarchical clustering
本篇文章我们继续介绍另一种聚类算法--Birch模型,相对于K-means和DBSCAN,Birch的应用并没有那么广泛,不过它也有一些独特的优势,Birch算法比较适合于数据量大,类别数K也比较多的 ...
- 聚类(三)—— 层次聚类
主要内容 聚类分析概述 K-Means聚类 层次聚类 基于密度的聚类 其他聚类方法 聚类评估 小结 三.层次聚类 算法原理 层次聚类 (Hierarchical Clustering)就是按照某种方法 ...
- 机器学习算法(十二):聚类(2)层次聚类 Hierarchical Clustering
目录 1 层次聚类 1.1 层次聚类的原理 1.2 两个组合数据点间的距离: 2 自底向上的合并算法 2.1 AGNES算法 (AGglomerative NESting) 2.1.1 原理 2.1. ...
- 机器学习技术-层次聚类算法(组平均)-综合层次聚类方法(BIRCH、CURE)
基于层次的聚类方法,是对给定的数据进行层次的分解,直到某种条件满足为止.首先将数据点组成一颗聚类树,根据层次,自底向上或是自顶向下分解.层次的方法可以分为凝聚的方法和分裂的方法. 凝聚的方法,也称为自 ...
- java层次聚类_python实现一个层次聚类方法
层次聚类(Hierarchical Clustering) 一.概念 层次聚类不需要指定聚类的数目,首先它是将数据中的每个实例看作一个类,然后将最相似的两个类合并,该过程迭代计算只到剩下一个类为止,类 ...
- k均值聚类算法(K Means)及其实战案例
算法说明 K均值聚类算法其实就是根据距离来看属性,近朱者赤近墨者黑.其中K表示要聚类的数量,就是说样本要被划分成几个类别.而均值则是因为需要求得每个类别的中心点,比如一维样本的中心点一般就是求这些样本 ...
- python层次聚类_python中做层次聚类,使用scipy.cluster.hierarchy.fclusterdata方法 | 学步园...
python机器学习包里面的cluster提供了很多聚类 但是没有看明白ward_tree的返回值代表了什么含义,遂决定寻找别的实现方式. 经过查找,发现scipy.cluster.hierarchy ...
最新文章
- Java项目:新闻发布系统(java+Springboot+ssm+mysql+maven)
- 进击的Waymo,掘进无人驾驶深水区
- openresty获取nginx请求url中的所有参数
- Collections.sort()泛型集合排序的使用,和自定义类实现Comparable<T>接口重写compareTo(T o)方法完成Collections.sort()排序,以及自定义排序规则
- 从“猿”到“金刚”,机器学习让你在职业生涯超进化!
- Redis(2)---数据持久化
- tensorflow一元二次函数拟合
- sed 手册阅读笔记转
- iOS Social框架
- 一张图 综合交通 解决方案_航天智慧环保 | 重庆跳蹬河智慧水务管理系统解决方案—应用篇...
- linux 屏幕输出 高亮_通过printf设置Linux终端输出的颜色和显示方式
- 客户端和服务器之间的信息结构,客户端和服务器之间的信息结构
- 深入浅出Java反射机制
- matlab闭环直流调速系统实验,实验三双闭环直流调速系统MATLAB仿真.doc
- PS小知识(一)——建立不透明度:蒙版
- 其他:管理员账户已被禁用
- html5新增哪些属性,html5中新增哪些form属性
- js使用微信分享功能
- 【转】谢帅同学做的——柔软的canvas时钟
- Microsoft Visual Studio 2013/2015/2017 官方原版 ISO 镜像中文版下载
热门文章
- w7提示无法关闭计算机,win7关不了机怎么回事?老司机教你怎么解决电脑关不了机...
- 深度技术win11旗舰稳定版v2021.07
- win7系统出现0x0000001a蓝屏代码的解决教程
- RTSP摄像机为什么还保留MJPEG编码格式
- linux spoon.sh闪退,解决Linux Kettle出现闪退问题
- maven配置之:<distributionManagement>snapshot快照库和release发布库
- springboot基于mybatis扫描jar包中的controller、service、dao、xml
- java如何将String转换为enum
- git checkout 会把改动带过去吗_原创 | 操作失误不要慌,这个命令给你的Git一次反悔的机会...
- stm32 lwip 如何发送不出_mbedtls | 移植mbedtls库到STM32裸机的两种方法