1 描述
k-means聚类算法是基于距离的聚类算法,该算法采用距离大小作为相似性的评价指行标,即认为两个数据点的距离越近,其相似性就越大。该算法认为簇是由距离靠近的数据点组成的,因此把得到的紧凑且独立的簇作为最终目标。
2 算法核心思想
k-means聚类算法是一种迭代求解的聚类分析算法,其步骤是随机选取k个数据点作为初始聚类中心,然后计算其他每个数据点与各个初始聚类中心的距离,把每个数据点分配给距离它最近的初始聚类中心。
3 算法实现步骤
- 首先确定一个k值,即希望将数据集合聚类为k类;
- 从数据集合中随机选择k个数据点作为初始聚类中心;
- 从数据集合中的每一个点,计算其与每一个初始聚类中心的距离(如欧氏距离),离哪个初始聚类中心近,就划分到哪个初始聚类中心所属的簇;
- 把所有数据归好簇之后,一共有k个簇,然后重新计算每个簇的中心;
- 如果新计算出来的中心和原来的中心之间的距离小于某一个设置的阈值(表示重新计算的质心的位置变化不大,趋于稳定,或者说收敛),我们可以认为聚类已经达到了期望的结果,算法终止。
(1)图(a)表达了初始的数据集合,假设k=2,此时还没有分类,全都是一种颜色;
(2)图(b)中,我们随机选择了两个