我有一个包含多行和5维(全数字)的数据集。归一化后,我应用k-means算法以聚类数据。
clus2_k3<-kmeans(clus2,centers=3)
在此步骤之后,我想要显示结果,但由于它有超过3个维度,因此无法使用2D或3D绘图。
是否有任何命令或算法可以绘制它,或者如果没有,是一种减少尺寸数量而不会丢失减去信息的替代方法吗?
答案 0 :(得分:1)
答案 1 :(得分: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()
修改:您可以尝试使用center
和scale.
参数的不同组合,例如设置为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%的“信息”存储在这两个组成部分中。
答案 2 :(得分:0)
您只能使用绘图功能,但需要指定K-means
抛出的特定列,它会将结果作为名称cluster
的列表抛出。
试试这段代码:
plot(clus2_k3$cluster)