我正在使用 R 进行 K 均值聚类。我使用 14 个变量来运行 K-means
- 什么是绘制 K-means 结果的漂亮方法?
- 有没有现有的实现?
- 有 14 个变量是否会使绘制结果复杂化?
我发现了一个叫做 GGcluster 的东西,它看起来很酷,但它仍在开发中。我还阅读了一些关于 sammon mapping 的内容,但不是很了解。这会是一个不错的选择吗?
我正在使用 R 进行 K 均值聚类。我使用 14 个变量来运行 K-means
我发现了一个叫做 GGcluster 的东西,它看起来很酷,但它仍在开发中。我还阅读了一些关于 sammon mapping 的内容,但不是很了解。这会是一个不错的选择吗?
这里有一个可以帮助你的例子:
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 中的前两个或三个成分进行聚类分析。
我会为此推送剪影图,因为当维度数为 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)剪影:对聚类分析的解释和验证的图形辅助。J.计算机。应用程序。数学。, 20 , 53-65。
我知道的最简单的方法如下:
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)
通过这种方式,您可以使用不同的颜色及其质心来绘制每个集群的点。
在这一点上这是一个老问题,但我认为 factoextra 包有几个用于聚类和绘图的有用工具。例如,fviz_cluster()函数在散点图中绘制 PCA 维度 1 和 2,并对集群进行着色和分组。 这个演示通过了一些与 factoextra 不同的功能。