2012-07-15 118 views
2

我有關於聚類分析(分層聚類)的問題。例如,這是虹膜數據集完全鏈接的樹狀圖。如何瞭解羣集分析(分層)中的羣組信息?

enter image description here

後,我用

> table(cutree(hc, 3), iris$Species) 

這是輸出

setosa versicolor virginica 
1  50   0   0 
2  0   23  49 
3  0   27   1 

我已經在一個統計網站閱讀,在數據對象1總是屬於group/cluster 1.從上面的輸出中,我們知道se土佐是在組1。那麼,我將如何瞭解其他兩個物種。它們如何落入第2組或第3組中。它是如何發生的。也許有一個我需要知道的計算?

回答

3

我猜你正在使用它來創建那個目前看起來不存在的圖像。

> lmbjck <- cutree(hclust(dist(iris[1:4], "euclidean")), 3) 
> table(lmbjck, iris$Species) 

lmbjck setosa versicolor virginica 
    1  50   0   0 
    2  0   23  49 
    3  0   27   1 

Dist是通過對具有相同列名和列名的三種不同物種的植物進行測量而創建的。

> iris.dist <- dist(iris[1:4], "euclidean") 
> identical(rownames(iris.dist), colnames(iris.dist)) 
[1] TRUE 

該對象被傳遞給hclust,它構造一棵樹並將其切成三塊。對象iris.order保存繪製樹狀圖的順序。原始順序被保留,樹根據這個順序繪製。

> iris.hclust <- hclust(iris.dist) 
> iris.cutree <- cutree(iris.hclust, 3) 
> iris.order <- iris.hclust$order 

這是證據。我將原始Species名稱,有序物種名稱放在一起,因爲它們可以在樹狀圖,訂單號和分組功能中看到。

> data.frame(original = iris$Species, ordered = iris$Species[iris.order], 
      order.num = iris.order, cutree = iris.cutree) 

     original ordered order.num cutree 
1  setosa virginica  108  1 
2  setosa virginica  131  1 
3  setosa virginica  103  1 
4  setosa virginica  126  1 
5  setosa virginica  130  1 
6  setosa virginica  119  1 
    ... 
103 virginica  setosa  31  2 
104 virginica  setosa  26  2 
105 virginica  setosa  10  2 
106 virginica  setosa  35  2 
107 virginica  setosa  13  3 
108 virginica  setosa   2  2 
    ... 

讓我們來看看輸出。如果你看第一行,在order.num下有108個數字。這意味着對於這個項目(樹狀圖左側的第一個項目)來自第108行。向下移動到第108行,你可以看到原始Species確實是virginica。 Cutree將此分配給組1。我們來看第3行。在order.num之下,你可以看到這個項目來自第103行。再次,如果你下來檢查第103行的原始物種,它仍然是(仍然)virginica。我會爲你做一個練習來檢查其他(隨機)行,並說服你自己保存在開始時構建表的順序。因此,桌子應該是正確的。

+0

謝謝你的解釋@羅曼·盧斯特里克。我會通過你回答。我將編輯圖片。 – Annie 2012-07-16 06:30:29

+0

我試圖編輯,但不知何故,圖片沒有顯示。另一種查看圖像的方法是,在地址欄中複製此鏈接> http://i.stack.imgur.com/78c1m.png。真的很抱歉給您帶來不便。 – Annie 2012-07-16 06:40:55

+0

@安妮,你可能沒有足夠的權限呢。我編輯了你的問題。如果您覺得所提供的答案回答了您的問題,請隨時通過點擊答案分數下方的灰色複選標記來標記該答案。 – 2012-07-16 07:10:13