如何分析R中亲和传播聚类的图结果?
How to analyse the graph result of affinity propagation clustering in R?
我已经安装了 R 的亲和力传播聚类包并阅读了 decomentation。对鸢尾花数据进行聚类的基本脚本是:
data(iris)
apIris1 <- apcluster(negDistMat(r=2), iris)
apIris1
通过这段代码,形成了六个集群。此外,可以使用以下代码以图形方式查看结果:
plot(apIris1, iris)
生成的图如下:
关于该图的可用信息是:每种颜色对应一个簇。每个集群的范例由
框和所有集群成员都用线连接到它们的样本。 还有其他方法可以分析这个图吗? 例如:每个大框之间有什么区别(包含彩色数据)包含六个集群?它们之间的关系是什么?当我尝试仅使用 plot(iris)
绘制数据时,生成的相同图没有颜色(黑点)且没有聚类。如何分析数据图?
此外,热图可以用heatmap(apIris1)
生成,如下:
如上图所示,顶部和左侧的不同颜色表示簇的总数。 如何详细分析这个情节?
任何帮助,请!
抱歉冗长 post!
更新:
这里,1、3、4连接的大盒子(不包括具有特征名称的框)分别具有相似的数据分布。然而,由 2 连接的框具有镜像分布。这种不同的数据分布到底说明了什么?如果只有一个大箱线图,就很容易形象化。但是,不同数据的框 distribution/pattern 让我感到困惑。我们能否将每一行或每一列与其各自的特征名称相关联?
你有四维数据。
图中的每个 "large boxes" 对应于数据的二维视图,基于仅选择 2 个特征作为 x 和 y。
热图更适合分层聚类。可以看到聚类是一致的(白色),但也有一些不同的聚类大部分是白色(蓝色和青色的交集),所以它们没有很好地分离。
我不知道 apcluster
背后的理论以及 negDistMat()
的作用,但我会调用
apIris1 <- apcluster(negDistMat(r=6), iris[,1:4])
然后你会因为某种原因得到 三个 个簇(你应该这样做,因为有 3 个物种),然后用
将簇分配与实际标签进行比较
library(purrr)
nclust <- map_dbl(apIris1@clusters, length) %>% length()
iris$cluster <- map_dbl(apIris1@clusters, length) %>% rep(1:nclust, .)
#visually compare two pairplots by switching back and forth in RStudio
pairs(iris[,1:4], col=factor(iris$cluster))
pairs(iris[,1:4], col=factor(iris$Species))
我已经安装了 R 的亲和力传播聚类包并阅读了 decomentation。对鸢尾花数据进行聚类的基本脚本是:
data(iris)
apIris1 <- apcluster(negDistMat(r=2), iris)
apIris1
通过这段代码,形成了六个集群。此外,可以使用以下代码以图形方式查看结果:
plot(apIris1, iris)
生成的图如下:
关于该图的可用信息是:每种颜色对应一个簇。每个集群的范例由
框和所有集群成员都用线连接到它们的样本。 还有其他方法可以分析这个图吗? 例如:每个大框之间有什么区别(包含彩色数据)包含六个集群?它们之间的关系是什么?当我尝试仅使用 plot(iris)
绘制数据时,生成的相同图没有颜色(黑点)且没有聚类。如何分析数据图?
此外,热图可以用heatmap(apIris1)
生成,如下:
如上图所示,顶部和左侧的不同颜色表示簇的总数。 如何详细分析这个情节?
任何帮助,请!
抱歉冗长 post!
更新:
这里,1、3、4连接的大盒子(不包括具有特征名称的框)分别具有相似的数据分布。然而,由 2 连接的框具有镜像分布。这种不同的数据分布到底说明了什么?如果只有一个大箱线图,就很容易形象化。但是,不同数据的框 distribution/pattern 让我感到困惑。我们能否将每一行或每一列与其各自的特征名称相关联?
你有四维数据。
图中的每个 "large boxes" 对应于数据的二维视图,基于仅选择 2 个特征作为 x 和 y。
热图更适合分层聚类。可以看到聚类是一致的(白色),但也有一些不同的聚类大部分是白色(蓝色和青色的交集),所以它们没有很好地分离。
我不知道 apcluster
背后的理论以及 negDistMat()
的作用,但我会调用
apIris1 <- apcluster(negDistMat(r=6), iris[,1:4])
然后你会因为某种原因得到 三个 个簇(你应该这样做,因为有 3 个物种),然后用
将簇分配与实际标签进行比较library(purrr)
nclust <- map_dbl(apIris1@clusters, length) %>% length()
iris$cluster <- map_dbl(apIris1@clusters, length) %>% rep(1:nclust, .)
#visually compare two pairplots by switching back and forth in RStudio
pairs(iris[,1:4], col=factor(iris$cluster))
pairs(iris[,1:4], col=factor(iris$Species))