我目前正在關注文檔主題中的層次結構。作爲第一步,我找到了我的文檔的向量表示,然後使用分層聚類來確定文檔的主題內是否有主題。我只想考慮(嵌套的)至少包含2個原始數據的集羣。爲了達到這個目的,我使用R.獲取集羣層次結構和嵌套集羣分配
現在,我正在努力從聚類結果中有效地提取集羣層次結構。集羣使用「fastcluster」軟件包完成,它提供與原始「hclust」功能類似的結果。
對於我的最終輸出應該看起來像這樣;將有兩個表
集羣分配:
docID , ClusterLabel
1, A
2, A
3, B
4, B
5, B
3, C
4, D
5, C
...
集羣層次:
Parent, Child
B, C
B, D
...
正如你所看到的,觀察3,4和5發生在集羣分配表多次,其中一個羣集是其父羣集的子羣集。這可以在Hierarchy表中看到。
我目前的方法是使用「Dendextend」包中的cutree.dendogram函數來查找k值網格的聚類分配,然後從輸出中推導聚類分層結構和分配。然而,這種方法非常天真,對於大量的觀測和聚類變得非常緩慢。
有關如何有效解決此問題的建議,最好使用一些現成的軟件包將不勝感激。
編輯:考慮下面的例子中,對應於所述採樣輸出數據:
data <- matrix(data = c(1,2,3,4,5,1,3,5,9,10), nrow = 5, ncol = 2)
plot(data)
hc<- hclust(dist(data))
plot(hc)
如果我們將削減樹在高度6,我們將獲得2簇,在輸出命名爲A和B.但是,如果我們在高度爲4的樹上砍樹,我們將有3個簇,輸出中命名爲A,C和D.現在,例如,docID 3的觀察結果在集羣B中與集羣C中(取決於我們切割樹的高度)相對應,這與樣本輸出集羣分配中的兩個條目相對應。集羣B分爲兩個集羣C和D,這可以在集羣Hierachy輸出中看到。
現在我的目標是獲取聚類分配和層次結構的完整列表,向下移動樹狀圖。 (最好在(子)簇中的觀測量少於一定量的觀測值時停止)
直到現在我還沒有想出一個合理有效的方法來做到這一點,希望任何人都可以提供給我一個理念。
Hi @ Bartdp1,你能否用一個自包含可重現的例子更新你的問題? –
@TalGalili @TalGalili我更新了這個問題,感謝您看看 – BDP1