美文网首页
Kmeans聚类

Kmeans聚类

作者: 云彩修建站站长 | 来源:发表于2019-10-17 19:22 被阅读0次

    kmeans是简单易懂又很常用的一种聚类方法。
    对于kmeans的聚类,我着力弄懂如下一些问题:

    1. 质心初始化的方式
    2. 评测指标

    聚类步骤

    1. 初始化K个质心。
    2. 对于每个样本点,计算它到所有质心的距离,选择距离最近的质心作为它归属的簇。
    3. 所有的样本点迭代完毕,分簇完成,每个簇重新计算质心。
    4. 迭代2,3步骤,直到质心不再移动或者达到迭代次数。

    质心的初始化方式

    sklearn的质心有如下几种初始化方式:

    1. random。随机选出k个质心。缺点是选出来的初始质心可能不合理,导致聚类结果不好。中间还会有收敛过慢的问题。
    2. kmeans++。过程稍微复杂一些,目标是选出来的质心相对距离都比较远。参考链接

    评测指标

    1. 轮廊系数(Silhouette Coefficient)

    这个指标可以衡量类内的聚合程度和类间的离散程度。
    对于单个样本的轮廊系数,可以使用:
    s(i)=\frac{b(i)-a(i)}{max(a(i),b(i))}
    解释如下:

    1. a(i)表示该样本点到同簇样本的平均距离。a(i)越小表示i在这个簇越合理。
    2. b(i)表示该样本点到其他簇样本点的平均聚类。b(i)越大表示i越不属于其他的簇。
      s(i)的取值范围是[-1,1],越大说明该点分配正确的概率越高。对所有样本点取均值就获得了平均轮廊系数。

    k值的选择

    网上关于k值的选择,最经典的是手肘法。但是有人说,在实际情况中,画出来的曲线很难像手肘一样,最好还是根据实际业务来确定分的类别。

    手肘法

    手肘法的核心指标是SSE(sum of the squared errors,误差平方和),随着K值的增大,理论上SSE会递减,直到到达一个合理的簇数,当K再减小的时候,SSE就不会降低太多。
    最终的曲线是达到理想的K值之前,SSE快速下降;超过了理想的K值,下降速度减缓,出现一个肘部。

    这里的SSE也可以使用轮廊系数来确定。

    相关文章

      网友评论

          本文标题:Kmeans聚类

          本文链接:https://www.haomeiwen.com/subject/kudvmctx.html