在R中,如何在聚类数据后绘制相似性矩阵(如块图)?
发布时间:2020-12-14 05:10:31 所属栏目:大数据 来源:网络整理
导读:我想生成一个图表,显示聚类数据和相似性矩阵之间的相关性. 我怎么能在R中这样做? R中是否有任何函数可以像此链接中的图片一样创建图形? http://bp0.blogger.com/_VCI4AaOLs-A/SG5H_jm-f8I/AAAAAAAAAJQ/TeLzUEWbb08/s400/Similarity.gif(只是谷歌搜索并获得
我想生成一个图表,显示聚类数据和相似性矩阵之间的相关性.
我怎么能在R中这样做? R中是否有任何函数可以像此链接中的图片一样创建图形? http://bp0.blogger.com/_VCI4AaOLs-A/SG5H_jm-f8I/AAAAAAAAAJQ/TeLzUEWbb08/s400/Similarity.gif(只是谷歌搜索并获得显示我想要生成的图表的链接) 提前致谢. 解决方法
@Chase和@ bill_080评论中提出的一般解决方案需要一点点增强(部分)满足OP的需求.
一个可重复的例子: require(MASS) set.seed(1) dat <- data.frame(mvrnorm(100,mu = c(2,6,3),Sigma = matrix(c(10,2,4,3,0.5,2),ncol = 3))) 使用Eucildean距离计算标准化数据的相异矩阵 dij <- dist(scale(dat,center = TRUE,scale = TRUE)) 然后使用组平均方法计算这些数据的层次聚类 clust <- hclust(dij,method = "average") 接下来,我们根据从树形图中形成3(‘k’)组来计算样本的排序,但我们可以在这里选择其他的东西. ord <- order(cutree(clust,k = 3)) 接下来根据树状图,共生距离计算样本之间的差异: coph <- cophenetic(clust) 以下是3个图像图: >原始相异矩阵,基于聚类分析分组排序, 以下是生成上述图的代码 layout(matrix(1:4,ncol = 2)) image(as.matrix(dij)[ord,ord],main = "Original distances") image(as.matrix(coph)[ord,main = "Cophenetic distances") image((as.matrix(coph) - as.matrix(dij))[ord,main = "Cophenetic - Original") plot(coph ~ dij,ylab = "Cophenetic distances",xlab = "Original distances",main = "Shepard Plot") abline(0,1,col = "red") box() layout(1) 哪个在有源设备上产生这个: 然而,尽管如此,只有Shepard图显示了“聚类数据和[dis]相似性矩阵之间的相关性”,而这不是图像图(levelplot).对于共生和原始[dis]相似性的所有成对比较,您如何建议计算两个数字之间的相关性? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |