加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

R语言K-means

(2014-06-08 17:29:08)
标签:

r

k-means

分类: DataMining
k-means的原理是:
      1)选择k个点作为初始质心,即需要分为k个簇
      2)遍历数组,依次将点分配到最近的质心,加入新点后,质心需要重新计算更新
      3)重复点的分配和质心的更新动作,直至簇不再发生变化或者质心的变动的范围在接受范围内

存在的问题:
   在聚类前,簇的个数是不可知的,初始质心的随机的选择会对聚类的生成造成很大的影响,为降低初始质心的选择丢后期的影响 
                    a)先使用层次聚类的方法得到特定的k个簇及质心,(样本较小的情况)
                    b)随机选择第一个质心,对于后续的每一质心,选择离已经选取的初始质心最远的点

聚类优劣的判断
   常用的判断值是误差的平方和(sum of the squared error ,sse),以其作为度量聚类质量的目标函数。
   即计算簇内每个点到簇质心的距离的平方和。
  SSE=dist(c-x)^2, dist(c-x)^2=(Cx-x)^2+(Cy-y)^2
R 中聚类方法的运用是利用k-means函数
设置矩阵 x
http://s5/mw690/001mUNFYty6Jw4gtdicb4&690
调用函数 t<-kmeans(x,2)  ;要求生成2个簇

打印出簇和质心
http://s3/mw690/001mUNFYty6Jw4HzvQ6b2&690

上图中得到2个簇,第一个簇的质心是(5.5 ,7.000000) 第二个簇的质心是(3.0 ,3.666667)
其sse标识是   9.000000 2.666667
我们来计算第二个
(3-3)^2+(3.666667-3)^2+(3-3)^2+(3.666667-3)^2+(3-3)^2+(3.666667-5)^2
=2.666667和上述一致

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有