k-means聚类算法

Posted 超人汪小建(seaboat)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k-means聚类算法相关的知识,希望对你有一定的参考价值。

聚类

聚类主要内容是将样本进行归类,同种类别的样本放到一起,所有样本最终会形成K个簇,它属于无监督学习。

核心思想

根据给定的K值和K个初始质心将样本中每个点都分到距离最近的类簇中,当所有点分配完后根据每个类簇的所有点重新计算质心,一般是通过平均值计算,然后再将每个点分到距离最近的新类簇中,不断循环此操作,直到质心不再变化或达到一定的迭代次数。数学上可以证明k-means是收敛的。
这里写图片描述

伪代码

随机选择k个初始质心
while(true){
 计算每个点到最近距离的质心,归为该类。
 重新计算每个类的质心。
 if(质心与上一次质心一样or达到最大迭代次数)
   break;
}

缺点

  1. 需要事先确定类簇的数量。
  2. 质心的选取会影响最终的聚类结果。

代码实现

以上是关于k-means聚类算法的主要内容,如果未能解决你的问题,请参考以下文章

K-means聚类算法一文详解+Python代码实例

动手写机器学习算法:K-Means聚类算法

为啥使用 k-means(来自 Scipy)聚类到两个片段的图像会显示两个以上不同的像素值?

K-means聚类算法及python代码实现

不足20行 python 代码,高效实现 k-means 均值聚类算法

K-means 与KNN 聚类算法