k-means

目录

k-means的原理是

k值的选取(手肘法)

关于初始质心的选取:

k-means的优点:

k-means的缺点:


先贴出我借鉴的博客

  1. https://blog.csdn.net/Katherine_hsr/article/details/79382249
  2. https://blog.csdn.net/qq_15738501/article/details/79036255
  3. https://blog.csdn.net/u011204487/article/details/59624571

k-means也叫做k均值聚类,它的原理是:

         假设有n个坐标点(样本)

  1. 我们要在其中随机选取k个点作为初始质心(这k个点的选取可以属于这n个样本,也可以在中n个样本之外)
  2. 计算每个样本与这k个点之间的距离,把这个样本分配到离其最近的质心上,这样n个样本就分别分配到各个质心所对应的簇上了
  3. 将这k个簇的质心重新计算,得到k个新的质心
  4. 重复2,3步,直到质心不再发生变化(收敛)

关于k值的选取,在这里推荐的方法是手肘法(另一种是轮廓系数法)

手肘法的核心指标是SSE(sum of the squared errors,误差平方和)

                                                                               SSE=\sum_{i=1}^{k}\sum_{p\in C_{i}}|p-m_{i}|^{2}

       其中,Ci是第i个簇,p是Ci中的样本,mi是Ci的质心(Ci中所有样本的均值),SSE是所有样本的聚类误差,代表了聚类效果的好坏。

        手肘法的核心思想是:随着聚类数k的增大,样本划分会更加精细,每个簇的聚合程度会逐渐提高,那么误差平方和SSE自然会逐渐变小。并且,当k小于真实聚类数时,由于k的增大会大幅增加每个簇的聚合程度,故SSE的下降幅度会很大,而当k到达真实聚类数时,再增加k所得到的聚合程度回报会迅速变小,所以SSE的下降幅度会骤减,然后随着k值的继续增大而趋于平缓,也就是说SSE和k的关系图是一个手肘的形状,而这个肘部对应的k值就是数据的真实聚类数。当然,这也是该方法被称为手肘法的原因。

       具体做法是让k从1开始取值直到取到你认为合适的上限(一般来说这个上限不会太大,这里我们选取上限为8),对每一个k值进行聚类并且记下对于的SSE,然后画出k和SSE的关系图(毫无疑问是手肘形),最后选取肘部对应的k作为我们的最佳聚类数。

       下图中 横坐标为k,纵坐标为SSE(此图并不是真实数据,只是为了大家能够方便理解k值的选取以及手肘)

       ·可知最佳k值的选取是在第4个点(即手肘位置)


关于初始质心的选取:

有以下三种方法:

  1. 随机选取k个质心
  2. 选择彼此距离尽可能远的K个点
  3. 先对数据用层次聚类算法进行聚类,得到K个簇之后,对每个簇计算质心,得到k个质心

k-means的优点:

  1. 是解决聚类问题的一种经典算法,简单、快速
  2. 对处理大数据集,该算法保持可伸缩性和高效性
  3. 当簇接近高斯分布时,它的效果较好。

k-means的缺点:

  1. 在簇的平均值可被定义的情况下才能使用,可能不适用于某些应用;
  2. 在 K-means 算法中 K 是事先给定的,这个 K 值的选定是非常难以估计的。很多时候,事先并不知道给定的数据集应该分成多少个类别才最合适;
  3. 在 K-means 算法中,首先需要根据初始聚类中心来确定一个初始划分,然后对初始划分进行优化。这个初始聚类中心的选择对聚类结果有较大的影响,一旦初始值选择的不好,可能无法得到有效的聚类结果;
  4. 该算法需要不断地进行样本分类调整,不断地计算调整后的新的聚类中心,因此当数据量非常大时,算法的时间开销是非常大的;
  5. 若簇中含有异常点,将导致均值偏离严重(即:对噪声和孤立点数据敏感);
  6. 不适用于发现非凸形状的簇或者大小差别很大的簇。
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值