2013-03-07 86 views
0

我使用下面的執行k均值分析:[R k均值數據點

km = kmeans(mat2, centers = 4) 

我還策劃使用library(fpc)獲得視覺如下k均值分析:

plotcluster(mat2, km$cluster) 

這裏結果爲:enter image description here

mat2的每一行對應圖中的一個點。我給每個行中的矩陣的名稱改爲:

rownames(mat2) = names  #names is a vector corresponding to the rows of mat2 

我可以通過下面的屬性發現每行的矩陣中的成員:

km$cluster 

這使得每行的名稱在矩陣中,隨後是圖中相應的整數。但是,我想訪問更多的數據。

如何從這些集羣點訪問更多數據?例如,我想找出圖中整數與矩陣中行之間的對應關係。爲了澄清,回答這個問題可以讓我知道矩陣中的哪一行對應於圖中最高的2個?一旦我知道哪些整數對應於矩陣中的哪些行,那麼我有矩陣中每行的名稱,並可以給出有意義的解釋。

我還想找出圖中一個點與它所屬的集羣中心之間的距離度量。我可以得到圖中(x,y)座標與矩陣中行之間的對應關係嗎?我可以得到一個交互式圖形用戶界面,當我點擊圖中的一個聚類點時,我可以看到更多上述的一些數據?我願意使用不同的圖庫進行繪圖。總結爲兩個問題:

  1. 我怎樣才能得到圖中的整數與矩陣中的行之間的對應關係?
  2. 有沒有現成的軟件包或工具可以讓我更容易?

非常感謝所有幫助!

+0

你在問幾個不連貫的問題,這樣一個答案將無法涵蓋所有​​問題。考慮改進? – alexwhan 2013-03-07 22:23:53

+0

底部的問題澄清了主要問題。 – CodeKingPlusPlus 2013-03-07 22:29:43

+0

'str(mat2)'的輸出是什麼? – alexwhan 2013-03-07 22:57:19

回答

1

這是回答你的一些問題,但那裏有很多。如果你想與你的情節進行互動以確定積分,你可以看看?identify。這裏有一個解決你使用的特定行的答案。如果你想問一些關於交互式GUI的問題,可能會發表一個關於這個問題的具體問題

mat <- matrix(rnorm(160), ncol=2) 
km <- kmeans(mat, centers=4) 
df <- as.data.frame(cbind(mat, km$cluster)) 
names(df) <- c("Var1", "Var2", "cluster") 

#Get the row of df with highest Var1 and cluster == 2 
which(df$Var1 == max(df$Var1[df$cluster==2])) 
# 76 

#Use this to extract the row 
df[which(df$Var1 == max(df$Var1[df$cluster==2])),] 

#You can subset you data based on one of the variables 
#Get the rows with cluster == 2 
df.2 <- df[df$cluster == 2,] 
+0

我真的不想從羣集中找到具有最高方差的點的矩陣行,這只是一個幫助澄清的例子。我想找到任何點的矩陣行。 – CodeKingPlusPlus 2013-03-07 23:20:03

+0

那麼,爲什麼你沒有勾選這個時,你正在尋求的答案已被給予? – 2013-03-07 23:31:58

+0

最初沒有意識到這是我尋找的地圖! – CodeKingPlusPlus 2013-03-08 15:46:51