K-means算法
随机选择 K 个对象作为初始的聚类中心,计算每个对象和各个聚类中心之间的距离,再将每个对象分配给距离它最近的聚类中心
步骤
-
确定一个k值(随机);
-
从给定的数据集中随机选择K个数据点作为质心;
-
对数据集中的每个点计算其与每一个质心的距离(比如欧式距离);数据点离哪个质心近,就划分到那个质心所属的集合;
-
第一轮将所有的数据归号集合后,一共有K个集合,然后重新计算每个集合的质心;
-
如果新计算出来的质心和原来的质心之间的距离小于某一个设置的阈值,则表示重新计算的质心的位置变化不大,数据整体趋于稳定,或者说数据已经收敛。在这样的情况下,我们认为聚类效果已经达到了期望的结果,算法可终止;
反之,如果新质心和原来质心的距离变化很大,需要重复迭代3-5步骤,直至位置变化不大,达到收敛状态。
优点
- 原理简单,实现容易,算法收敛速度很快
- 聚类效果优,可解释性强。当数据最终收敛之后,能够很清晰的看到聚类的效果
- 约束条件少
缺点