统计学习 k-means聚类
【k均值聚类】
问题:给定{Xi} i=1,2....n 进行聚类
输入:{X1,X2,....Xn} 簇的数目为k
算法流程:
- 初始化选择K个种子作为K个类簇的中心
- repeat
- for each Xi do
- 计算Xi到每个类簇中心的距离
- 将Xi指配到距离最近的类簇中
- end for
- 根据类簇内的点,重新计算K个类簇中心
- 直到所有的类簇中心不再改变
流程图:
如何选择初始化K个种子?
很难正好选定的就是k个类簇的中心,常采用启发式的方法
选定一个类簇的中心,其它类簇的中心选定离已选定的类簇中心尽可能远
k-means方法的局限性:
当簇具有不同的大小、非球形、密度不同时,聚类效果不理想
克服方法:
- 使用更大数量的簇
- 几个小的簇表示一个真实的簇
- 使用基于密度的方法
由于均值中心可能受离群点(脏数据)的影响,也可采用中位点作为簇的中心,其相对于均值,对脏数据不敏感
优点 | 局限性 |
经典的聚类方法,简单,快速 | 数据的扰动,可能造成划分到不同的簇 |
能处理大规模数据 | 假定各个簇类似于球形,实际可能不符合 |
当簇接近高斯分布,效果良好 |