-1

在下面的 kmeans 分析中,我分配 1 或 0 来指示单词是否与用户相关联:

cells = c(1,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,1,1,1,1,1,1)
rnames = c("a1","a2","a3","a4","a5","a6","a7","a8","a9")
cnames = c("google","so","test")

x <- matrix(cells, nrow=9, ncol=3, byrow=TRUE, dimnames=list(rnames, cnames))

# run K-Means
km <- kmeans(x, 3, 15)

# print components of km
print(km)

# plot clusters
plot(x, col = km$cluster)
# plot centers
points(km$centers, col = 1:2, pch = 8)

这是图表:

在此处输入图像描述

为什么我没有在每个集群周围收到多个积分?这张图说明了什么。我想根据另一个用户是否配置了相同的词来向用户建议一个词。

4

1 回答 1

0

您看不到多个点,因为您的数据是离散的分类观察。K-means 真的只适用于对连续观察进行分组。您的数据只能出现在您显示的图上的三个点上,而三个点并不能构成一个很好的数据“云”。

这向我表明 k-means 可能不适合您的特定问题。

顺便说一句,当我运行上面的代码时,我得到了下面的图,这与您向我们展示的不同。也许这更像你所期待的?绿色绿色数据点属于(“周围”)由黑色星号指示的右上方聚类中心。

在此处输入图像描述

于 2013-07-03T14:41:13.440 回答