【问题标题】:Visualize large dimension clusters in R using k-means使用 k-means 在 R 中可视化大维度集群
【发布时间】:2016-12-15 12:08:42
【问题描述】:

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

clus2_k3<-kmeans(clus2,centers=3)

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

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

【问题讨论】:

标签: r cluster-analysis data-visualization k-means


【解决方案1】:

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

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,这组看起来更好一些:

编辑:

要查看评论中提到的“信息丢失”,可以使用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 的累积属性。方差,这意味着 96% 的“信息”存储在这两个组件中。

【讨论】:

  • 使用这个代数工具减少维数确实是一个有趣的选择。也许还建议对每个维度的数据方差进行预先分析,以观察在抑制维度时信息丢失是否相关。
  • 对于“信息丢失”,summary(pca_res) 可能很有用,因为它为您提供了组件的累积方差 - 请参阅上面的编辑。
【解决方案2】:

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

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

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

【讨论】:

  • 我认为这对于我拥有的数据集来说是一个不错的选择,因为它的维度很少。但是当维度数较高时,您有替代表示吗?
【解决方案3】:

您只能使用绘图功能,但您需要指定K-means 抛出的特定列,它将以名称为cluster 的列表形式抛出结果。

试试这个代码:

plot(clus2_k3$cluster)

【讨论】:

    猜你喜欢
    • 2020-10-24
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    • 2015-08-07
    • 2020-01-16
    • 2012-11-01
    • 2012-11-06
    • 2018-10-04
    相关资源
    最近更新 更多