聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法,同时也是数据挖掘的一个重要算法。属于无监督学习方法。
K-Means算法是聚类中的基础算法,也是无监督学习里的一个重要方法。
其基本算法思想如下:
1)随机人为给定 k 个初始点作为簇质心。
2)由某个距离函数计算每个数据样本与每个簇质心的距离,并将其分配至距离最近的簇中。
3)根据新分配的簇,计算 k 个簇的新质心。
4)迭代计算步骤 2)4),直至达到迭代终止条件(例如两次迭代簇质心距离变化小于某一个阈值),完成数据分类。
普通的K-Means算法由于初始簇质心的随机性,有可能会收敛至局部最优。此时可以采用多次随机初始化,取分类的最好结果。
但当 k 值较大时,多次随机获得的最好结果可能只会略好一点,因为随着 k 数量的增多,每个初始簇质心位置的随机性对整体带来的不确定性越小。
对于数据点到簇质心的距离度量常采用:欧式距离和余弦距离。
对余弦距离图解如下:
两向量的余弦 = 两向量的点积 / 两向量模的积