使用 k-means 在 R 中可视化大维度集群

Visualize large dimension clusters in R using k-means

我有一个包含多行和 5 个维度(均为数字)的数据集。归一化后,我应用 k-means 算法对数据进行聚类。

clus2_k3<-kmeans(clus2,centers=3)

完成这一步后,我想可视化结果,但由于它有超过 3 个维度,因此无法使用 2D 或 3D 图。

是否有任何命令或算法来绘制它,或者如果没有,是否有另一种方法来减少维度的数量而不丢失减去维度的信息?

您只能使用 plot 函数,但您需要指定 K-means 抛出的特定列,它会将结果作为名称为 cluster.

的列表抛出

试试这个代码:

plot(clus2_k3$cluster)

成对绘图是相当标准的,例如

这是4维数据。同样的方法也适用于 5 个维度。

有关详细信息,请参阅 R 手册中的 R 命令 pairs

好吧,作为评论完全看不懂...

require(ggplot2)
data("iris")

pca_res <- prcomp(as.matrix(iris[, 1:4]), center = TRUE, scale. = TRUE)
plot_data <- cbind(as.data.frame(pca_res$x[, 1:2]), labels = iris[, 5])

ggplot(plot_data, aes(x = PC1, y = PC2, colour = labels)) +
  geom_point()

编辑:您可以尝试 centerscale. 参数的不同组合,例如两者都设置为 FALSE:

,这组看起来好一点

编辑:

要查看评论中提到的 "loss of information",可以使用 summary() 函数:

summary(pca_res)

# Importance of components:
#                           PC1    PC2     PC3     PC4
# Standard deviation     1.7084 0.9560 0.38309 0.14393
# Proportion of Variance 0.7296 0.2285 0.03669 0.00518
# Cumulative Proportion  0.7296 0.9581 0.99482 1.00000

这里的PC1和PC2代表0.96的累计prop。方差,这意味着 "information" 的 96% 存储在这两个组件中。