怎样用R实现距离矩阵 聚类分析的聚类分析,求帮忙

本站为您推荐的文章
您可能感兴趣的文章
数据分析师视频
CDA上海数据分析就业班答辩
1.金融数据分析-第一组
CDA数据分析师学员
CDA数据分析师周边
Copyright & ,
All Rights Reserved. CDA数据分析师 版权所有 京ICP备号-9 & & & & &小木虫 --- 600万学术达人喜爱的学术科研平台
&&查看话题
求助 (已知遗传距离矩阵,怎么进行聚类分析)
已知遗传距离矩阵:
如Genotype 全矩阵:
& && && & & & 2410& & & && &32_& && && &&&4484& &&&& & & & 4594& & & && &4607& & & && &&&4632
2410& & & & 0.0000& & & & 0.8990& & & & 1.1882& & & & 1.1626& & & & 1.1843& & & & 1.2103
32_& && && &&&0.8990& & & & 0.0000& & & & 0.6783& & & & 0.7261& & & & 0.9291& & & & 1.0177
4484& & & & 1.1882& & & & 0.6783& & & & 0.0000& & & & 0.2009& & & & 0.4018& & & & 0.2703
4594& & & & 1.1626& & & & 0.7261& & & & 0.2009& & & & 0.0000& & & & 0.2641& & & & 0.1736
4607& & & & 1.1843& & & & 0.9291& & & & 0.4018& & & & 0.2641& & & & 0.0000& & & & 0.2181
4632& & & & 1.2103& & & & 1.0177& & & & 0.2703& & & & 0.1736& & & & 0.2181& & & & 0.0000
或者半矩阵:
& & & && && && && &V2410& & & && && && && && & V4484&&& & & && && && && && &Bogra& & & && &&&Cypress
V2410& & & & 0& & & & & & & & & & & &
V4484& & & & 0.& & & & 0& & & & & & & &
Bogra& & & & 0.& & & & 0.& & & & 0& & & &
Cypress& & & & 0.& & & & 0.& & & & 0.& & & & 0
请问用什么软件进行聚类分析?
SAS? DARwin? 还是NTSYS pc?
请大侠赐教!
我的email是
学术必备与600万学术达人在线互动!
扫描下载送金币
北京学而思教育科技有限公司 地址:北京市海淀区北三环甲18号中鼎大厦A座1层102室 电话:010-R语言聚类分析-层次聚类分析_鬼浪子青_新浪博客
R语言聚类分析-层次聚类分析
聚类分析的一般步骤:
1.选择合适的变量
2.缩放数据
3.寻找异常点
4.计算距离
5.选择聚类算法
6.获得一种或多种聚类方法
7.确定聚类数目
8.获得最终的聚类解决方案
9.结果可视化
11.验证结果
下面正式开始层次聚类的讲解:
在层次聚类中,起初每一个实例或观测值属于一类,聚类就是每一次把两类聚成新的一类,直到所有的类聚成单个类为止。
(1)定义每个观测值(行或单元)为一类
(2)计算每类和其他各类的距离
(3)把距离最短的两类和并成一类,这样的类的个数就减少一个:
(4)重复步骤(2)(3)
在层次聚类分析中,主要的区别是它们对类的定义不同,下面给出五种常见的聚类方法的定义和其中两类之间距离的定义。
单联动(single)最短距离法:一个类中的点和另一个类中的点的最小距离
全联动(complete):一个类中的点和另一个类中的点的最大距离
平均联动(average):​一个类中的点和另一个类中的点的平均距离
质心(centroid):两类中质心(变量均值向量)之间的距离,对单个观测值来说质心就是变量的值
ward法:两个类之间所有变量的方差分析的平方和
​层次分析法用函数hclust()函数来实现,格式是:hclust(d,method="")
d:是dist()函数计算出的距离矩阵
method:方法:"single"
&"complete"​
&"average" &"centroid"
平均联动聚类:
data(nutrient,package = "flexclust")
row.names(nutrient)&-tolower(row.names(nutrient))
nutrient.scale&-scale(nutrient)
& d&-dist(nutrient.scale)
& fit.average&-hclust(d,method =
"average")
& plot(fit.average,hang = -1,cex=.8)
如果最终目标是分配到的类较少,我们需要分析聚类的个数
NbClust()函数可以计算适当类的数目
library(NbClust)
devAskNewPage(ask = TRUE)
nc&-NbClust(nutrient.sacle,distance =
"euclidean",min.nc = 2,max.nc = 15,method = "average")
table(nc$Best.nc[1,])​
&5 &9 10 13 14
barplot(table(nc$Best.nc[1,]))
可以看出类的数目为:2,3,5,15最佳
获得最终的聚类方案:
代码:​
barplot(nc$Best.nc)
clusters&-cutree(fit.average,k=5)
& table(clusters)
aggregate(nutrient,by=list(clusters),median)
& Group.1 energy protein fat calcium
& & 1 &340.0
& & 2 &170.0
& & 3 &160.0
& & 4 & 57.5
& & 5 &180.0
& 9 & & 367
aggregate(as.data.frame(nutrient.sacle),by=list(cluster=clusters),median)
& cluster &
& energy &
&protein & &
&calcium & &
& & 1 &1.3101024
&0...4480464
& & 2 -0.3696099
&0...3967868
& & 3 -0.4684165
&1...3839719
& & 4 -1..3520023
-1..4361807
& & 5 -0.2708033
&0...1396825
& plot(fit.average,hang = -1,cex=.8)
rect.hclust(fit.average,k=5)
​​
博客等级:
博客积分:0
博客访问:4,484
关注人气:0
荣誉徽章:关注今日:8 | 主题:189526
微信扫一扫
扫一扫,下载丁香园 App
即送15丁当
【求助】请问哪些软件可以对距离矩阵直接进行聚类分析?
页码直达:
这个帖子发布于2年零149天前,其中的信息可能已发生改变或有所发展。
有N组数据,编号为a,b,c,d........x,如a:{1.1.1.2.2.3.5.7.8.....M}; b:{1.1.2.2.2.4.5.9.10.17.......j}; c:{************}; d:.......。每组数据可看做一个集合,两两比对得到任意两组数据的交集个数,不需要把交集中的元素列出来,即(a,b):55,表示集合a和b有55个元素相同;(a,c):50; (a,d):78;......。如下面矩阵:第一行a
e..............x表示各组数据(集合),第二行a后面的103表示a组里面包含103个数(元素),55表示a、b两组数据中有55个相同,50表示a、c两组数据中有50个相同,78表示a、d两组数据中有78个相同。第三行b后面的79表示b组里面有79个数,后面的67表示b、c两组数据中有67个相同。*************************************
......a......b......c......d.......e..............xa..103...55....50....78.....j1.............ji
b..........79.....67....43.....*…….........*c...................87.....*.....*..............*d............................*.....*..............*....................................*..............* ........................................*..........*............................................*......*x..................................................***********************************
对上面矩阵中x组数据聚类,有相同元素最多的先聚为一类,如(a,d):78最大,则a、d先聚为一类,以此类推。得出树状聚类图。
现在的问题是我计算机、数学的基础很差,没学过编程,也没学过高数。听说有很多软件可以做聚类分析,有些功能还很强大,比如SPSS。
我从网上找了些SPSS聚类分析的教程,教程里举得例子都是像下面那样的,每一类里有几个变量(专科、本科那些东西),按照工资高低聚类。聚类的过程似乎是先对数据进行处理,得到距离矩阵,然后再聚类。可我的问题不是这样的,上面的矩阵本身就是一个距离矩阵,所以感觉我的问题聚类起来应该更简单一些。但教程里没有教该如何直接对距离矩阵进行聚类。************************************************工资 专科 本科 硕士 博士北京
...............................................................
..............................................................
..............................................................************************************************
各位热心网友有没有熟悉SPSS操作的,能否用SPSS将上面的矩阵聚类?如果不能,有没有其它软件可用?编程先算了吧,我还不会,听说有很多软件可以聚类分析,如果SPSS不好用,还有哪些软件可用?多谢.
不知道邀请谁?试试他们
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
传说 edited on
关于丁香园

我要回帖

更多关于 距离矩阵 聚类 的文章

 

随机推荐