聚类总结(上)——划分聚类

时间:2024-03-23 15:42:08

概述

聚类指根据一定的准则,把一份事物按照这个准则归纳成互不重合的几份。机器学习中,聚类指按照一个标准,这个标准通常是相似性,把样本分成几份,使得相似程度高的聚在一起,相似程度低的互相分开。

聚类的方法很多,有基于分层的聚类,基于划分的聚类,基于密度的聚类。不同的方法有各自的特点,适用于不同分布的数据。有的适用于大数据集,能发现不同的任意形状的数据。有的算法简单,适用于小量数据集。众多方法中又有无监督学习,和半监督学习。

一组m * n 维数据,通过聚类分成5簇,每个样本属于哪个簇用one_hot编码表示,可以看成样本由n维降到了5维。可以把聚类看做一种降维的方法,用在数据处理阶段。
聚类总结(上)——划分聚类

样本相似性度量

用距离表示

衡量两个向量间的相似程度,可以用两个向量间的距离表示:距离近,则相似程度高,距离远,则相似程度低。距离有不同的度量视角,不同视角的度量对应的距离可能不同,这便有可能在不同的距离角度把数据分类,不同的度量方法应用在不同的聚类方法之中:

聚类总结(上)——划分聚类
用距离度量数据需先做均一化。

杰卡德相似度

如果样本是从一个集合中选取的,衡量各样本的相似度,可以用杰卡德相似度。看两个样本有多少交集,交集多说明相似度高。实际中结合具体业务可能会给定不同特征不同的权重值。
聚类总结(上)——划分聚类

余弦相似度

样本在空间中表示,除了用两个样本间距离去衡量相似性,还可以用它们向量间夹角大小来衡量,余弦相似度就是这样的方法,范围[-1, 1]。
聚类总结(上)——划分聚类
如果把每个样本看做一个函数,求每个样本的均值、方差,可以利用皮雅逊相关系数度量相关性,范围[0, 1],1表示相关性极强:
聚类总结(上)——划分聚类

簇间相似性度量

不仅需要衡量数据间的相似性,还需要衡量聚类结束后得到的结果的好坏。即衡量各簇间的相似性,相似性越低,说明聚类的效果越好。
当已知标签时, 衡量指标有ARI,AMI,均一性和完整性。ARI和AMI范围[0, 1],数值越大说明聚类效果越好。

轮廓系数

当样本标签未知时,可以用轮廓系数度量聚类效果。
一个簇内样本,到簇内其他样本的距离的平均值为ai,叫做簇内不相似度,ai越小,说明这个点和簇内其他样本距离越近,聚类效果越好。一个样本到其他簇的距离按簇求平均值取最小的,称为簇间不相似度,越大说明这个样本越不属于其他簇。定义轮廓系数是S(i)为:
聚类总结(上)——划分聚类

S(i)越接近1,说明聚类效果越好。越接近-1说明聚类效果越差。等于0,说明样本点在聚类边界上。

聚类方法

k-means

k均值算法:
1. 首先给定聚类中心,所有样本求和聚类中心的欧氏距离,取数值小的作为当前距离并归入那个中心点。
2. 计算归入个中心的点的平均值作为新的聚类中心,再重复步骤1,直到达到规定迭代次数或阈值。
(步骤二如果数据分布不均匀,可以选择中位数,就是k-mediods(k中值)算法)
缺点是对初值敏感,初值的选择对聚类的影响很大。

k-means++,对k-means的改进:
1. 首先随机选择一个聚类中心点,计算其余各样本到这点的距离di。
2. 所有di求和得到总距离D,用di/D做概率,选择第二个聚类中心点。
3. 再计算其余各点到离自己最近聚类中心的距离,重复步骤2,知道得到指定中心数。
4. 重复k-means步骤。

假设各簇数据概率密度符合高斯分布,利用最大似然估计得到k-means的目标函数:
聚类总结(上)——划分聚类

则如果数据满足方差相同的高斯混合模型,K-means可以得到比较好的聚类效果。损失函数值随指定簇数降低,选择曲线拐点(elbow)处簇数做指定簇数。

层次聚类

层次聚类分自顶向下和自下而上两种方法。自下而上是先认为每个样本单独一类,计算每个样本间距离,把距离最小的合并成一类。然后重新计算各样本距离,不断聚类。
这里的距离,一般用欧式距离。但在衡量两个类间距离时,选择参与计算的样本时有不同的方法。
聚类总结(上)——划分聚类
聚类总结(上)——划分聚类
不同的数据选择不同的衡量方法,不一定均值就更好。
当类间距离大于设定的阈值或达到设定簇数时,停止聚类。
层次聚类的优点是能发现样本间的层级关系。

参考:
小象学院,邹博《机器学习V》聚类
http://www.csdn.net/article/2012-07-03/2807073-k-means
http://www.cnblogs.com/leoo2sk/archive/2010/09/20/k-means.html
层次聚类:http://bluewhale.cc/2016-04-19/hierarchical-clustering.html
密度聚类:http://blog.csdn.net/itplus/article/details/10088625
http://blog.csdn.net/google19890102/article/details/37330471