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

生活也是大事业

阿波的学习、工作和生活

 
 
 
 
 

日志

 
 
关于我

江浙沪,数学系,天蝎座O型,懒洋洋,傻乎乎

文章分类

CONCOR(迭代相关收敛)与kmeans聚类  

2010-05-17 00:20:43|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

有同学在google搜索CONCOR(迭代相关收敛),我来尝试着做一下,并且看看聚类的结果与kmeans有没有差别。

所用数据仍然是手机数据,目标是将74个型号的手机按照功能与特点进行聚类。

初始发生阵为b。为了方便求相关矩阵,对b做转置。

b0=t(b)

然后开始求相关矩阵,并持续迭代至矩阵中元素均为1或-1。本数据迭代了8次。

d0=b0

d1=cor(d0)

d2=cor(d1)

......

d8=cor(d7)

将计算结果作为聚类结果。

b$concor=d8[1,]

作为对照,进行kmeans聚类。

k=kmeans(x=b[,1:15],centers=2)

将kmeans结果放入原始矩阵。

b$kmeans=k$cluster

做散点图,看两种聚类的结果有无差异。

plot(jitter(b$concor,0.5),jitter(b$kmeans,0.5))

结果为:

CONCOR(迭代相关收敛)与kmeans聚类 - 皮皮米菲兔 - 生活也是大事业

可以看出聚类结果基本一致。

同时,经过多次试验发现,kmeans聚类结果不稳定,偶尔会与concor结果存在较大差异。出现这种情况的原因或许是因为kmeans算法对初始聚类中心过于敏感,容易陷入局部收敛。

对于上述结果,可以开展进一步的聚类。例如选取kmeans聚类得到的第二种类别,再次进行聚类分析。

b1=b[b$kmeans==2,1:15]

b10=t(b1)

d10=b10

d11=cor(d10)

......

d18=cor(d17)

此时已经收敛。

b1$concor1=d18[1,]

k1=kmeans(x=b1[,1:15],centers=2)

b1$kmeans1=k1$cluster

plot(jitter(b1$concor1,0.5),jitter(b1$kmeans1,0.5))

散点图结果为:

CONCOR(迭代相关收敛)与kmeans聚类 - 皮皮米菲兔 - 生活也是大事业

  评论这张
 
阅读(1358)| 评论(0)

历史上的今天

评论

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

页脚

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