您的位置:首页 > 其它

常见聚类方法的介绍及其改进与评估方法

2019-02-27 15:06 218 查看

聚类方法介绍

聚类方法主要分为自上而下聚类和自下而上聚类。
自上而下聚类指的是,首先将所有的样本点一起看作一类,对这一大类不停地进行拆分;
而自下而上聚类指的是,首先把每个点自己都看成一类,这样起始会有n类,之后再逐渐合并。

1.k均值聚类方法
  • 首先找到k个种子;
  • 计算每个点到种子的距离,将其分到最近的种子所属的那一类;
  • 重新计算k个类的重心,重复上述步骤。
  • 满足设定的迭代次数,或类的重心距离变化小于阈值时停止迭代。
2.系统聚类法(自下而上)
  • 首先将每一个点都看作一类;
  • 找到距离最近的两个点,合并成一类;
  • 再找到距离最近的两个点或两类,合并成一类,以此类推,直到最后合并为一类。
  • 根据聚类的过程(谱系聚类图)以及所需要的聚类的数目得到聚类结果。
3.注意事项

因为使用欧式距离,因此要做标准化。

聚类方法的改进

1. k-means方法的优缺点
  • 优点:非常快,O(KNt);很多时候局部最优也够用了。
  • 缺点:
    =局部最优;
    =受异常值点和噪声影响大;
    =受到初始值设定的影响,结果不稳定;
    =当类内分布差异较大时聚类结果不佳。
2. k值的选取

其实选k的方法就是选取不停地k进行尝试之后选择类内离差平方和最小的k。
主要有碎石图法和gap statistic方法,思想类似。

  • 碎石图法找损失函数最小的k;
  • gap statistic方法找和期望相差最大的k。
    Gap(K)=E(logDk)−logDkGap(K)=E(logD_k)-logD_kGap(K)=E(logDk​)−logDk​
  • 核函数法,低维映射到高维,增加线性可分的可能性。
3.初始值的选择方法改进
  • k-means ++
    k-means的初始值是随机选取的,不好;
    改进方法是k-means++方法。
    k-means++方法中,第一个种子随机选取,之后的每一个种子,都选择与前面的种子距离比较大的那些。
  • isodata
    k-means聚类过程中k不变化,不好;如果能够动态变化就好了。isodata就是这个思想。
    如果某类过大(方差超过阈值),则将其拆分;
    如果某两类距离过近(重心距离小于阈值),则将其合并;
    如果某类拆分后的子类过小(内部元素个数小于阈值),则不拆。

聚类效果的评价

  1. 在进行聚类之前,需要判断数据是否可以进行聚类,即数据是否是随机分布,是否存在非随机的簇结构。
    方法是:
    a) 首先计算数据集中每一个点到最近点的距离,得到n个距离xix_ixi​;
    b) 在数据取值范围内随机生成n个点,对这随机生成的n个点中的每一个点,寻找与其距离最近的点,并分别计算距离,得到n个距离yiy_iyi​;
    c) 比较Σxi\Sigma{x_i}Σxi​和Σyi\Sigma{y_i}Σyi​之间的大小。
    d) 若原始数据随机分布,则二者相差不大,H接近0.5,否则接近1。
    H=Σyi/(Σxi+Σyi)H={\Sigma{y_i}}/{(\Sigma{x_i}+\Sigma{y_i})}H=Σyi​/(Σxi​+Σyi​)

  2. 聚类后,对聚类效果进行评价,由于是无监督学习,所以只能从聚类后的数据是否分得开入手。即是否做到了类内同质化最大,类间异质化最大。 下面的统计量基本都是基于这个思想来构造的。

  • 轮廓系数
    对于数据集内任意一点p,计算该点到类内其他点的平均距离a(p)a(p)a(p),计算该点到与它最近的类内点点平均距离b(p)b(p)b(p),计算下述统计量。易见统计量越大聚类效果越好,对所有点计算s(p)s(p)s(p)后求平均,即得到整体的聚类效果评估。
    s(p)=(b(p)−a(p))/max(a(p),b(p))s(p)=(b(p)-a(p))/max(a(p),b(p))s(p)=(b(p)−a(p))/max(a(p),b(p))

  • R方
    思想就是,看点到类内重心的距离有没有比聚类之前到整体重心的距离变小。
    计算公式如下,肯定是越大越好。
    R2=Σx∈D∣∣x−c∣∣2−ΣiΣx∈Ci∣∣x−ci∣∣2Σx∈D∣∣x−c∣∣2R^2=\frac{\Sigma_{x\in D}||x-c||^2-\Sigma_{i}\Sigma_{x\in C_i}||x-c_i||^2}{\Sigma_{x\in D}||x-c||^2}R2=Σx∈D​∣∣x−c∣∣2Σx∈D​∣∣x−c∣∣2−Σi​Σx∈Ci​​∣∣x−ci​∣∣2​

  • 均方根标准偏差RMSSTD
    就是计算了每个点到重心的距离,之后相当于做了归一化,对维度P做了惩罚。越小越好。
    RMSSTD=ΣiΣx∈Ci∣∣x−ci∣∣2PΣi(ni−1)RMSSTD=\frac{\Sigma_{i}\Sigma_{x\in C_i}||x-c_i||^2}{P\Sigma_i(n_i-1)}RMSSTD=PΣi​(ni​−1)Σi​Σx∈Ci​​∣∣x−ci​∣∣2​

  • HubertΓ\GammaΓ统计量
    思想和上面是反着的,上面是计算类内距离,应该是越小越好,这个统计量则是计算不同类点之间的距离,越大越好。
    Γ=2n(n−1)Σx∈DΣy∈Dd(x,y)dx∈Ci,y∈Cj(ci,cj)\Gamma=\frac{2}{n(n-1)} \Sigma_{x\in D}\Sigma_{y\in D}d(x,y)d_{x\in C_i,y\in C_j}(c_i,c_j)Γ=n(n−1)2​Σx∈D​Σy∈D​d(x,y)dx∈Ci​,y∈Cj​​(ci​,cj​)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: