聚类

      聚类就是对大量未知标注的数据集,按数据的内在相似性将数据集划分为多个类别,使类别内的数据相似度较大而类别间的数据相似度较小,聚类是一种无监督算法。

度量相似性

1、最简单的度量相似性的方法就是欧氏距离

                                                        

两个n维的点,X是x1、x2、x3...xn,Y是y1、y2、y3...yn,欧氏距离就是每个对应维之间相减的p次方,取和再开p次根号。可以类比二维空间的距离。

2、杰卡德相似系数

                                                                  

两个集合之间的相似性度量相似性最常用的公式。

3、余弦相似度

                                                                      

余弦相似度可以认为是极坐标系中用θ值度量两个点之间的距离,而非欧式坐标中两点间的直线距离。

4、Pearson相关系数

                                

用两个向量之间的相关系数作为度量标准

5、相对熵(K-L距离)    

                                        

两个向量一个的分布概率是px,一个是qx,就可以用相对熵作为其相似性的度量。

相对熵求最小是与最大似然估计求最大值有关。

6、Hellinger距离

                                   

聚类的基本思想

给定一个有N个对象的数据集,构造数据的K个簇,K<=N。满足下列条件

①每一个簇至少包含一个对象

②每一个对象属于且仅属于一个簇

将满足上述条件的K个簇称作一个合理划分

对于给定的类别数目K,首先给出初始划分,通过迭代改变样本和簇的隶属关系,使得每一次改进之后的划分方案都较前一次好。

K-means算法

假定输入样本为S=x1、x2...xm,算法步骤为

1、选择初始的K个类别中心μ1μ2...μk

2、对于每个样本xi,将其标记为距离类别中心最近的类别,即

                                                                  

3、将每个类别中心更新为隶属该类别的所有样本的均值

                                                                       

4、重复最后两步,直到类别中心的变化小于某阈值。中止条件可以使用迭代次数、簇中心变化率、最小平方误差等判断。

K-means算法的公式化解释

记K个簇中心为μ1、μ2...μk,每个簇的样本数目为N1、N2...Nk

使用平方误差作为目标函数

                                                    

该函数为关于μ1、μ2...μk的凸函数,其驻点为

                                 

所以说前面K均值算法取平均值也就是对目标函数进行梯度下降,这解释了取均值的原因。

K-means算法的思考

1、若簇中含有异常点,比如数组1、2、3、4、100,此时均值为22,那就不如用中位数3作为标准而不再使用均值,这种方法就是K-Mediods聚类(K中值聚类)

K均值聚类是初值敏感的算法,也就是说初始点的选择对聚类结果有影响,此时可以二分K-Means

如图当第一次聚类选取的初值点(+)聚类效果不好,可以在较大的类中选两个,在较小的两个均值接近的类中选一个,重新选择初值点进行聚类。

二分聚类的代码不好实现,此时我们可以先选出一个初始点,以这个初始点作为基准,计算其他点到基准点的距离,以距离作为权值,选取下一个初始点时,距离远的选中概率大。选出下一个基准点,然后再选下一个距离这两个基准点远的点。

Canopy算法

        Canopy属于一种‘粗’聚类算法,即使用一种简单、快捷的距离计算方法将数据集分为若干可重叠的子集canopy,这种算法不需要指定k值、但精度较低,可以结合K-means算法一起使用:先由Canopy算法进行粗聚类得到k个质心,再使用K-means算法进行聚类。

        Canopy算法步骤如下:

            (1)将原始样本集随机排列成样本列表L=[x1,x2,...,xm](排列好后不再更改),根据先验知识或交叉验证调参设定初始距离阈值T1、T2,且T1>T2 。

            (2)从列表L中随机选取一个样本P作为第一个canopy的质心,并将P从列表中删除。

            (3)从列表L中随机选取一个样本Q,计算Q到所有质心的距离,考察其中最小的距离D:

                        如果D≤T1,则给Q一个弱标记,表示Q属于该canopy,并将Q加入其中;

                        如果D≤T2,则给Q一个强标记,表示Q属于该canopy,且和质心非常接近,所以将该canopy的质心设为所有强标记样本的中心位置,并将Q从列表L中删除;

                        如果D>T1,则Q形成一个新的聚簇,并将Q从列表L中删除。

            (4)重复第三步直到列表L中元素个数为零。


聚类的衡量指标

均一性:一个簇只包含一个类别的样本,极端情况每一个类别都是一个簇

                                                

先计算类别本身的熵H(C),然后再算一下给定了分类的情况下熵是H(C|K),二者相除。

完整性:同类别样本被归到相同的簇中,极端情况所有类被一个簇

                                            

V-measure:均一性和完整性的加权平均

                                                           

ARI(Adjusted Rand Index)

                                                    

上面这个数据集S共有N个元素,两个聚类结果分别是X={X1.X2....Xr},Y={Y1.Y2....Ys},X和Y的元素个数为a={a1.a2....ar},b={b1.b2...bs}即a1是X1簇中元素个数,b1是Y1簇中元素个数。记            

                                                               

           

轮廓系数(Silhouette)

Silhouette系数是对聚类结果有效性的解释和验证。

计算样本i到同簇其他样本的平均距离 ai,ai 越小,说明样本i越应该被聚类到该簇,将 ai 称为样本 i 的簇内不相似度。
簇C中所有样本的 ai 均值称为簇 C 的簇不相似度。

计算样本 i 到其他某簇 Cj 的所有样本的平均距离 bij,称为样本 i 与簇 Cij 的不相似度。定义为样本i的簇间不相似度

                                           

bi越大,说明样本i越不属于其他簇。

根据样本 i 的簇内不相似度 ai 和簇间不相似度 bi,定义样本 i 的轮廓系数。

                             

Si 接近1,说明样本 i 聚类合理,Si 接近-1,说明样本 i 更应该分类到另外的簇,若 Si 近似为0,说明样本 i 在两个簇的边界上。

所有样本的 si 的均值被称为聚类结果的轮廓系数,是该聚类是否合理有效的度量。 

层次聚类

层次聚类方法对给定的数据集进行层次的分解,直到某种条件满足为止,具体可分为

1、凝聚的层次聚类:AGNES算法

     一种自底向上的策略,首先将每一个对象作为一个簇,然后合并这些原子簇为越来越大的簇,直到某个终结条件被满足。

2、分裂的层次聚类:DIANA算法

    采用自顶向下的策略,首先将所有对象置于一个簇中,然后逐渐细分为越来越小的簇,直到达到某个终结条件。

密度聚类

指导思想是只要样本点的密度大于某阈值,则将该样本添加到最近的簇中;这类算法能克服基于距离的算法只能发现凸的(类圆形)聚类的缺点,可以发现任意形状的聚类,且对噪声数据不敏感,但是计算密度单元的计算复杂度大,需要建立空间索引来降低计算量。

经典的密度聚类算法可以看这个博客:https://blog.csdn.net/weixin_41690708/article/details/95480399

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值