我有一个数据集mydata
,其中包含84个变量,每个变量有300个观察值,如下所示:
我使用以下代码在5个集群中集群mydata
:
mydata <- read.csv("mydata.csv", header = TRUE)
# K-Means Clustering with 5 clusters
fit <- kmeans(mydata, 5)
# Cluster Plot against first 2 principal components
# vary parameters for most readable graph
library(cluster)
clusplot(mydata, fit$cluster, color=TRUE, shade=TRUE, labels=2, lines=0)
我希望它根据观察结果绘制84个变量及其名称,如第一张图所示。但相反,正如在上一张图片中可以看到的那样,它聚集了300个观测值。如何解决这个问题?
我尝试转置mydata
,但这并没有解决问题。
编辑:我希望它能够绘制这样的图(但这个图是针对另一个数据集的)。我只显示该图以显示图上变量的名称,这意味着变量将被绘制(基于观察结果)。
答案 0 :(得分:2)
如果您希望群集变量而不是实例,则只需转置您的数据矩阵。
通常,群集应用于数据点,而不是列。
注意k-means的通常限制。它对规模非常敏感。
答案 1 :(得分:0)
您提到的情节可能是使用mtcars
数据集创建的:
print(datasets::mtcars)
你看到的观点显然是观察。
如果要创建变量集群,则存在多个选项:
cor
,并使用hclust
进行分层聚类。kmeans
对变量进行聚类。此外,您希望对变量进行聚类的问题可能需要更多考虑。