我已经在散点图中绘制了以下数据。
X Y
90 3
3 0
90 4
30 0
14 0
70 1
20 3
90 5
21 2
15 0
82 2
1 0
1 0
并执行k = 2的k均值聚类分析
results = kmeans(data,2)
plot(data$X , data$Y,
xlab = "X" , ylab = "Y",
col = results$cluster , pch = 19)
这给了我以下散点图 link
我已经尝试了以下代码行,但是它只显示了整个数据集的均值。
points(mean(data$X), mean(data$Y))
我想知道如何显示每个单独簇的均值。谢谢
答案 0 :(得分:0)
对于任何给定数量的集群,这样的事情都应该起作用:
## Your code:
results = kmeans(data,2)
plot(data$X , data$Y,
xlab = "X" , ylab = "Y",
col = results$cluster , pch = 19)
## Add a cluster info in the data:
data$cluster <- results$cluster
## Compute the center of each cluster:
clusters <- split(data[, 1:2], data$cluster)
centers <- lapply(clusters, FUN = colMeans)
## Plot those centers:
for (k in 1:length(clusters)) {
points(x = centers[[k]][1],
y = centers[[k]][2],
col = k,
pch = 1
)
}
(此解决方案仅使用“ base R”中的函数。)