2013-07-03 16 views
-1

在下面k均值分析我分配1或0,表示如果字是與用戶關聯:爲什麼我在這個kmeans實現中沒有得到clusers的點數?

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) 

這是圖表:

enter image description here

爲什麼我沒有收到多個在每個羣集周圍點?這個圖表表示什麼。我想建議給用戶一個單詞,具體取決於另一用戶是否配置了相同的單詞。

回答

0

您看不到多個點,因爲您的數據是離散的,分類觀察值。 K-means實際上僅適用於對連續觀察進行分組。你的數據只能出現在你顯示的圖上的三個點上,而三點卻不能形成一個很好的數據「雲」。

這表明k-means可能不適合您的具體問題。順便說一句,當我運行上面的代碼時,我會看到下面的圖,這與您向我們展示的圖不同。也許這更像你所期待的?綠色的綠色數據點屬於(以「黑色」星號表示的右上方的聚類中心的「左右」)。

enter image description here

+0

有一些奇怪的事情發生,當我重新運行我在右上角 –

+1

那麼得到相同的結果上面,除了一個黑圈,而不是綠的,K-means算法是隨機的:它取決於在挑選集羣中心位置的隨機初始猜測時,多次運行相同的代碼可能會給出稍微不同的中心,這可能不足爲奇。儘管如此,你可能仍然想重新考慮使用k-means。我編輯了我的答案,明確表示我不認爲這種方法是你想要的。 – CnrL

相關問題