全局K-means算法

全局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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值