使用 R 的 K 中心聚类 - 结果图是否关闭?

K-centers clustering using R - is the resulting plot off?

我正在尝试使用 R 进行 k-means 聚类,这是我目前所做的:

tmp <- kmeans(ds, centers = 4, iter.max = 1000) 

plot(ds[tmp$cluster==1,c(1,5)], col = "red", xlim = c(min(ds[,1]),  
  max(ds[,1])), ylim = c(min(ds[,5]), max(ds[,5])))
  points(ds[tmp$cluster==2,c(1,5)], col = "blue")
  points(ds[tmp$cluster==3,c(1,5)], col = "seagreen")
  points(ds[tmp$cluster==4,c(1,5)], col = "orange")
  points(tmp$centers[,c(1,5)], col = "black")

我得到下图:

我对此很陌生,所以我可能离题太远了,但这张图对我来说不太合适。数据基本上按区域划分,老实说,我期待看到类似这样的东西:

我正在使用的数据集可以找到here

这就是 k 均值聚类算法的工作原理。 Google "k-means clustering" 并查看图片结果,您会看到不同的变化:圆形簇和您收到的类型。如果您将簇数 k 设置为不同的数字,您将得到不同的簇。该算法的目标是将数据集划分为所需数量的非重叠聚类 k,以便总的 within-cluster variation被最小化。这就是您在情节中看到的结果。

注意Age从大约18到60,所以年龄之间的最大距离大约是40。现在注意收入范围从0到20000。点之间的距离主要由收入决定.如果您希望 both 变量用于聚类,您应该在聚类之前缩放数据。尝试

tmp<-kmeans(scale(ds), centers = 4, iter.max = 1000)