K-Means 聚类
核心思想
K-Means 将
数学定义
目标函数(畸变函数)
其中
NP-Hard 问题
精确最小化
算法流程
- 初始化:选择
个初始中心 - E 步(分配):将每个样本分配到最近中心:
- M 步(更新):重新计算中心:
- 重复 2-3 直到收敛
收敛性
每次迭代
K-Means++ 初始化
为避免差的初始化,K-Means++ 按概率选择初始中心:
- 随机选择第一个中心
- 对于每个样本
,计算距已选中心的最短距离 - 以概率
选择下一个中心 - 重复直到选出
个中心
K-Means++ 保证期望的初始目标值为
如何选
肘部法则 (Elbow Method)
绘制
轮廓系数
:样本 到同簇其他点的平均距离 :样本 到最近异簇的平均距离 ,越接近 1 越好
代码对应
bash
python -m pipelines.clustering.kmeans