如何生成k均值聚类分析结果的漂亮图?


77

我正在使用R进行K均值聚类。我正在使用14个变量来运行K均值

  • 有什么漂亮的方法可以绘制K均值的结果?
  • 是否有任何现有的实现?
  • 具有14个变量会使绘制结果复杂吗?

我发现了一个叫做GGcluster的东西,它看上去很酷,但仍在开发中。我也阅读了一些有关sammon映射的内容,但并不太了解。这将是个好选择吗?


1
如果由于某种原因您对这个非常实际的问题感兴趣的是当前的解决方案,请考虑在现有答复中添加评论或使用更多上下文更新您的帖子。在这里处理40,000个案件是重要的信息。
chl 2012年

《统计学习要素》第118页上的另一个示例包含11个类和10个变量。信息不足。
丹尼斯

图书馆(动画)kmeans.ani(您的数据,中心= 2)
Kartheek Palepu 2015年

Answers:


27

我会为此推出轮廓图,因为当维数为14时,您不太可能从对图中获得很多可操作的信息。

library(cluster)
library(HSAUR)
data(pottery)
km    <- kmeans(pottery,3)
dissE <- daisy(pottery) 
dE2   <- dissE^2
sk2   <- silhouette(km$cl, dE2)
plot(sk2)

这种方法被高度引用并广为人知(请参阅此处以获得解释)。

Rousseeuw,PJ(1987)Silhouettes:对聚类分析的解释和验证的图形帮助J.计算机 应用 数学。20,53-65。


我喜欢这个。我会进一步研究。谢谢。
JEquihua 2012年

@ user603:您是否愿意在回答中给出解释的要点?您在2.5年前提供的链接已失效。本文仍然存在,但是对该技术进行简短的介绍将是不错的。
斯蒂恩

链接指向纸张(这是一个非门禁的访问点,实际上已经黑了)。
user603 2015年

我用此silhoette得到了一个奇怪的图(左边是clusplot,右边是silhoette图,这是预期的吗?)- i.imgur.com/ZIpPlhT.png
vipin8169

56

以下示例可以为您提供帮助:

library(cluster)
library(fpc)

data(iris)
dat <- iris[, -5] # without known classification 
# Kmeans clustre analysis
clus <- kmeans(dat, centers=3)
# Fig 01
plotcluster(dat, clus$cluster)

# More complex
clusplot(dat, clus$cluster, color=TRUE, shade=TRUE, 
         labels=2, lines=0)

# Fig 03
with(iris, pairs(dat, col=c(1:3)[clus$cluster])) 

根据后一个图,您可以决定要绘制哪个初始变量。也许14个变量很大,所以您可以先尝试进行主成分分析(PCA),然后使用PCA中的前两个或三个成分执行聚类分析。


1
我无法弄清楚如何解释dc1和dc2?你能指出我正确的方向吗?
UD1989

1
@Upasana Datta:这两个成分是对数据应用主成分分析(PCA,函数princomp)的结果。它们是输入变量的线性组合,这些输入变量构成了观察结果的大部分可变性。
rakensi

嗨,我对第二图中的椭圆是如何计算感到困惑?如何确定“这两个成分可解释点变异的95.81%”?
mynameisJEFF 2015年

@mynameisJEFF我假设它使用的是潜在/规范变量,eignvalue等。您可以查看文档,但这通常是当您看到带有这样标记的双图时的含义。也就是说,数据的95.81%的变化是由绘制数据的2个潜在变量解释的。更新-我只是在Google上搜索了它,的确使用了主要组件。
Hack-R

为什么在这里需要“ with”?离开该pairs功能会更容易一些。
Anatolii Stepaniuk '16

4

我知道的最简单方法是:

X <- data.frame(c1=c(0,1,2,4,5,4,6,7),c2=c(0,1,2,3,3,4,5,5))
km <- kmeans(X, center=2)
plot(X,col=km$cluster)
points(km$center,col=1:2,pch=8,cex=1)

这样,您可以使用不同的颜色及其质心绘制每个群集的点。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.