聚类 Cluster
聚类算法评价指标
聚类性能度量可以分为两类:
- 一类是将聚类结果与某个“参考模型”进行比较,称为“外部指标”(external index)
- 一类是直接考察聚类结果而不利用任何参考模型,称为“内部指标”(internal index)
对于
外部指标
对数据集,假定通过聚类算法将样本局为,将参考模型给出的簇划分为。
相应的,另与分别表示与和对应的簇标记向量。将样本两两配对考虑,有如下定义:
集合表示包含了在中属于相同的簇并且在中也属于相同的簇的样本;
集合表示包含了在中属于相同的簇但在中不属于相同的簇的样本;
……以此类推……
对每个样本对仅能出现在一个集合中,因此有
- Jaccard系数(accard Coefficient,JCI)所有属于同一类的样本对,同时在,中隶属于同一类的样本对的比例。
- FM指数(Fowlkes and Mallows Index,FMI)在中属于同一类的样本对中,同时属于和的样本对的比例为;在中属于同一类的样本对中,同时属于和的样本对的比例为,FMI就是和的几何平均。
- Rand指数(Rand Index,RI)很显然,上述性能度量指标的取值都在之间,并且取值越大越好。
-
内部指标
对于聚类结果,作如下定义:
表示质心,表示簇内样本的个数,即;
表示簇内样本之间的最大距离;
表示簇与簇之间的最小距离;
用于计算两个样本之间的距离;
代表簇的样本中心。
基于上述定义,得到如下考量聚类性能的内部指标:
- DB指数( Davies-Bouldin Index,DBI)DBI的值越小越好
- Dunn指数(Dunn Index,DI)DI的值越大越好
距离度量
聚类算法的一个重要的度量目标是表示两个样本点之间的相似程度:距离越近,相似程度越高;距离越远,相似程度越低。
常用的距离度量方式:
- 闵可夫斯基距离;
- 欧氏距离;
- 曼哈顿距离;
- 切比雪夫距离;
- 余弦距离
其中最重要的是闵可夫斯基距离,闵可夫斯基距离是一类距离的定义。
对于维空间中的两个点和,、两点之间的闵可夫斯基距离表示为:
- 当时,称为 曼哈顿距离
- 当时,称为 欧式距离
- 当时,称为 切比雪夫距离
K-Means算法
对给定的样本集,k均值算法根据聚类结果划分
最小化平方误差:
MSE刻画了簇类样本围绕簇均值向量的紧密程度,越小代表样本距簇均值中心越靠近。
但最优化上式的值是一个NP难的问题,因为要精确地找到它的最优解需要对样本集的所有划分情况进行一一列举。
因此,K-Means算法最终采用的是贪心的策略,通过迭代优化的方式来近似求解最优MES值。
算法流程如下:
有样本集,最终聚类的类别数,最大迭代轮数,前后两次迭代计算出的类标中心的距离
1、随机选择个样本点作为类标中心
2、计算每个样本点到所有类标中心点的距离;
3、将所有样本点划分到距离最近的类标中心所在的类标;
4、重新计算每个类的类标中心;
5、重复步骤2-4,直到两次迭代计算出的类标中心不发生变化或发生的变化小于或者达到指定的最大迭代次数。
密度聚类算法之 DBSCAN
基于密度的聚类(Density_Based Clustering)方法主要考虑的是样本分布的紧密程度,这里的紧密程度主要是用样本间的距离来衡量的。
通常情况下,密度聚类算法从样本密度的角度来考察样本之间的可连续性,并基于可连续性样本不断地扩展簇以获得最终的聚类结果。
DBSCAN是一种著名的密度聚类算法,它基于一组”领域”参数()来刻画样本分布的紧密程度。
对给定样本集进行如下定义:
-
领域
对于样本集中的样本点,它的领域定义为与距离不大于的样本的集合,即 - 核心对象
如果样本的领域内至少包含个样本,即则称为核心对象 - 密度直达
如果是一个核心对象,并且位于它的领域内
,那么我们称与密度直达 - 密度可达
对于任意两个不同的样本点与,如果存在样本序列,其中,且由密度直达,则称与密度可达。 - 密度相连
对于任意的两个不同样本点与,如果存在第三个样本点使得与均由密度可达,则称与密度相连。
其中:
红点表示核心对象;黑色圆圈表示核心对象的领域;绿色箭头表示密度直达;绿色箭头的连线表示密度相连;绿色连线上任意两点都是密度可达。
基于以上概念的定义,那么DBSCAN中簇的定义就十分简单了:
由密度可达关系导出的最大密度相连的样本合集,即为我们最终聚类的一个簇。
形式化的定义如下:给定领域参数,簇的非空样本子集有如下性质:
- 连接性(Connectivity)
对任意样本与有与密度相连; - 最大性(Maximality)
,且由有
找出簇样本合集:
DBSCAN方法任意选择一个没有类别的核心对象作为种子(Seed),然后找到所有这个核心对象的密度可达样本集合,即为一个聚类簇。
接着继续选择另一个没有类别的核心对象去寻找密度可达的样本合集,这样就得到了另一个聚类簇。
不断循环下去,直到使用核心对象都有类别为止。
算法形式化的描述如下:
层次聚类算法之 AGNES
层次聚类(Hierarchical Clustering)是聚类算法家族中的重要的成员,它通过合并和分裂构建树状的类簇。对数据的划分主要有两种方式: 自顶向下 的分裂和 自底向上 的聚合。每棵树的根是一个聚集所有样本的独有的类。
AGNES是一种采用自底向上聚合策略的层次聚类算法。它先将数据集中的每个样本看成是一个初始的聚类簇,然后在算法运行的每一步中找出距离最近的两个簇进行合并。该过程不断重复,直至达到预设的聚类簇的个数。
因此,这里的关键又是如何计算两个聚类簇之间的距离。
关于计算两个聚类簇之间的距离,有如下四个定义式:
AGNES聚类算法的形式化描述如下: