K-means算法的基本过程
K-means算法是无监督学习中的聚类算法,具体其实是一个迭代算法。
基本过程是:
- 随机给定聚类中心,进行簇随机分配
- 移动聚类中心
- 循环1和2
其实就是在平面或者空间中将一些点进行分类,比如要分成两类,随机在平面或空间中放两个点,哪些点离这两个点更近,哪些点就被分配到这两个点中的一个,然后把这两个点分别移到刚刚分配好的点集的均值中心位置,此时再根据距离近的规则再分配一次,然后再移动,不断迭代这个过程,直至收敛。
话不多说,直接看图:
- 先随机分类
- 根据距离远近进行簇分配
- 根据分配后的点集计算出该点集的位置中心,并将两个聚类点分别移到中心位置
- 移动完成之后,根据距离进行簇分配
- 分配完之后,移动到点集中心位置
- 再重新进行簇分配
- 再移动聚类中心
这时候你想再重复上述步骤,会发现移动的距离会慢慢收敛,直至为0,即一直处在了点集的中心位置,那么此时聚类就已经完成了。