使用 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)
我正在尝试使用 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)