簡體   English   中英

了解R中的熱圖樹狀圖聚類

[英]Understanding heatmap dendogram clustering in R

我會很高興R的熱圖函數的樹狀圖(Colv,Rowv)上的任何信息材料。 例如聚類的工作方式(是歐幾里德距離嗎?)。 您不必發表冗長的解釋,我已經對某些可以使我步入正軌的關鍵字感到滿意,因此我可以進行一些在線研究。

這是幫助手冊的摘錄,這使我有些困惑。 在這種情況下,“榮譽”是什么意思,它與重新排序有何不同?

如果Rowv或Colv是樹狀圖,則它們將受到尊重(而不是重新排序)。

RowvColv控制是否應對數據集的行和列進行重新排序,以及是否應重新排序。

它們的可能值為TRUENULLFALSE ,整數向量或樹狀圖對象。

  • 在默認模式TRUE ,heatmap.2使用hclustfundistfun參數執行聚類。 默認情況下,使用歐幾里德距離度量來完成鏈接聚類。 然后使用行/列方式對樹狀圖進行重新排序。 您可以通過為hclustfundistfun指定不同的函數來控制它。 例如,要使用曼哈頓距離而不是歐式距離,您可以執行以下操作:

     heatmap.2(x,...,distfun=function (y) dist(y,method = "manhattan") ) 

    查看?dist?hclust 如果您想了解有關聚類的更多信息,可以從“距離度量”和“聚集方法”開始。

  • 如果Rowv / ColvNULLFALSE則不進行任何重新排序或聚類,並且按原樣繪制矩陣。

  • 如果Rowv / Colv是一個數值向量, Colv TRUE計算聚類,並使用提供給Rowv / Colv的向量對樹狀圖進行重新排序。

  • 如果Rowv / Colv是樹狀圖對象,則將使用該樹狀圖對矩陣重新排序。 可以通過以下方式生成樹狀圖對象:

     rowDistance = dist(x, method = "manhattan") rowCluster = hclust(rowDistance, method = "complete") rowDend = as.dendrogram(rowCluster) rowDend = reorder(rowDend, rowMeans(x)) 

    會在曼哈頓距離上生成完整的聚類,按行方式排序。 現在,您可以將rowDend傳遞給Rowv

     heatmap.2(x,...,Rowv = rowDend) 

    例如,如果您想以不同的方式對行和列進行聚類,或者使用其他人給您的聚類,或者您想做一些僅通過指定hclustfun和distfun無法容納的時髦的方法,這將很有用。 這就是“樹狀圖被尊重”的意思:它被使用而不是hclustfun和distfun指定的內容。

要查看它如何精確地處理Rowv / Colv,還可以使用body(heatmap)顯示其源代碼。

從手冊中:

distfun:用於計算行和列之間的距離(不相似)的函數。 默認為dist。

hclustfun:當Rowv或Colv不是樹狀圖時,用於計算層次聚類的函數。 默認為hclust。 應該將distfun的結果作為參數,並返回可以應用as.dendrogram的對象。

dist()默認具有歐式距離和hclust()完整的鏈接方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM