2019-04-03 | UNLOCK

K-Means 聚类算法

算法流程

  1. 选择k个初始聚类中心
  2. 计算每个对象与这k个中心各自的距离,按照最小距离原则分配到最邻近聚类
  3. 使用每个聚类中的样本均值作为新的聚类中心
  4. 重复步骤(2)和(3)直到聚类中心不再变化
  5. 结束,得到k个聚类

K-means 方法的时间复杂度为O(NKT),N代表总元素个数,K代表簇中心个数,T代表迭代次数。K-means算法是一种硬性划分的聚类,即每个数据点唯一地分配给一个聚类,由于事先不知道实际的聚类情况,因此可能是一种严重的局限。该算法对初始中心的选取非常敏感,初始中心随机选取,导致结果波动较大,稳定性较差。同时该算法对噪声数据和孤立点数据较为敏感。该算法通常采用欧式距离作为数据样本之间的度量方式,导致该算法对球状的簇有比较好的聚类效果,但是很难发现其他形状的簇。

示例图

https://upload.wikimedia.org/wikipedia/commons/e/ea/K-means_convergence.gif

评论加载中