全局K-means算法

来源:互联网 发布:笔记本清理垃圾软件 编辑:程序博客网 时间:2024/06/06 04:19

全局K-means算法

经典的k-means算法可以查看:http://blog.csdn.net/xholes/article/details/52911781

经典k-means算法执行的是一个局部搜索的过程,并且受初始聚类中心的影响很大。 为了提高算法的全局搜索性能可以采用多种其他技术,如遗传算法等。然而这种优化的方法并没有被广泛的接受且在实际应用中常常使用的多次重复使用经典Kmeans算法来获得一个较好的结果。全局Kmeans算法是一种基于Kmeans的改进算法,这种改进可以确切的得到聚类的最优解。

基本思想

1)K = 1时,此时聚类中心的最优位置[c*(1)(1)]是整个数据集的中心。

2)K = 2时,设第一个聚类中心为K = 1时所获得的聚类中心[c*(1)(1)],第二个聚类中心随机选取[x(i)]。那么此时的聚类中心为[c*(1)(1),x(i)],依此初始聚类中心执行经典Kmeans算法聚类。依据这种方法重复执行n次,选取最好结果对应的聚类中心作为 K = 2的 “最优” (其实不一定)聚类中心[c*(1)(2),c*(2)(2)]。

3)依此类推,K个类的聚类中心由前 K-1 个类时获得的“最优”聚类中心[c*(1)(k-1), c*(2)(k-1), c*(3)(k-1),...,c*(k-1)(k-1)]和一个随机的聚类中心(x(i))构成[c*(1)(k-1), c*(2)(k-1), c*(3)(k-1),...,c*(k-1)(k-1),x(i)],然后执行经典Kmeans算法。重复执行n次以获得 “最优解”。


伪码及流程图

for i to K    for j to N       随机出一个点;       将随机点和 K = i - 1的最优解组成初始聚类中心;       执行经典K-means算法;       保存本次结果;    end    从N次执行结果中挑出最优解;end

0 0
原创粉丝点击