聚类之k-means
1、介绍
k-means算法以k为参数(所期望的簇的个数),把n个对象分成k个簇(单层划分),用质心(数据点的平均值)定义簇的原型。使得簇内具有较高的相似度,而簇间的相似度较低。
通过聚类,我们能够发现数据对象之间的关系。簇内的相似度越高,簇间的相似度越低,聚类效果越好。
2、过程
①随机选择k个点作为初始的聚类中心。
②对于剩下的点,根据其与聚类中心的距离,将其归入最近的簇,形成k个簇。
③对每个簇,计算所有点的均值作为新的聚类中心。
④重复②、③,直到聚类中心不再改变。
3、缺点
①可能收敛于局部最小值,在大规模数据中收敛较慢。
②k值需要预先给定,属于先验知识。
③对初始选取的聚类中心敏感。这会导致①。
④并不适合所有的数据类型,比如不能处理非球形簇。
⑤对含离群点的数据处理时存在问题。
为了克服k-means收敛于局部最小值的问题,可以采用二分k-means(bisecting K-means).
4、优化方法
1、bisecting K-means
①将所有样本看成一个簇。
②当簇小于k时,对于每个簇i,计算总误差,在簇i上进行2-means聚类,再计算该簇划分为两个簇后的总误差,选择误差最小的簇进行划分。
作者:萌萌的美男子
出处:http://www.cnblogs.com/ivan-count/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
出处:http://www.cnblogs.com/ivan-count/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。