注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

widebright的个人空间

// 编程和生活

 
 
 

日志

 
 

Clustering(聚类)的K-means(k均值聚类)算法  

2011-06-27 15:20:29|  分类: 程序设计 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
最近看了两本英文书,说到了k-means算法,英文太差了,一直不得要领。就搜索了一下中文看一下,网上的文章都写的不错,谢谢那些分享的朋友。

漫谈 Clustering (1): k-means  http://blog.pluskid.org/?p=17
这篇原理和图示都搞的不错,说的比较清楚。

算法杂货铺——k均值聚类(K-means) http://www.cnblogs.com/leoo2sk/archive/2010/09/20/k-means.html
这里举了一个用K-means 算法来划分中国足球是第几流的问题,也很有意思。

Clustering 就是根据相似性,把数据规为不同的分组吧。优点是计算的时间复杂度比较小的吧,书上说主流的应用都是使用k-means或者它的变种。

 

---------摘录自第一篇文章-------------------------------

下面我们来总结一下 k-means 算法的具体步骤:

  1. 选定 K 个中心 mu_k 的初值。这个过程通常是针对具体的问题有一些启发式的选取方法,或者大多数情况下采用随机选取的办法。因为前面说过 k-means 并不能保证全局最优,而是否能收敛到全局最优解其实和初值的选取有很大的关系,所以有时候我们会多次选取初值跑 k-means ,并取其中最好的一次结果。
  2. 将每个数据点归类到离它最近的那个中心点所代表的 cluster 中。
  3. 用公式 mu_k = frac{1}{N_k}sum_{jintext{cluster}_k}x_j 计算出每个 cluster 的新的中心点。
  4. 重复第二步,一直到迭代了最大的步数或者前后的 J 的值相差小于一个阈值为止。

--------------------------------------------------

就是通过以数据点之间的距离为代价,多次迭代不断的计算新的中心,最后的中心不断的接近实际的中心吧。看看引用文章的图示,写的很清楚。

  评论这张
 
阅读(776)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017