又名K-均值聚类算法 (K-Means Clustering Algorithm),非监督式学习常用的聚类算法。
1. 实现
给定:
- 训练样本{x(1),x(2),...,x(m)}, x(i)∈Rn
- 分类数目K
随机初始化
重复以下两步:
1. 对i=1到m:
2. 对j=1到K:
直到结果收敛。
2. 应对局部最优
为尽量避免收敛结果为局部最优,可随机初始化多组聚类中心,从中选择使得Cost函数取值最小的一组。
Cost函数(Distortion函数)
J(c(1),...c(m),μ1,...μK)=1m∑i=1m∥x(i)−μc(i)∥2
3. K值选择
运用Elbow Method(不总是有效)或根据实际应用情境。