[英]Understanding heatmap dendogram clustering in R
我會很高興R的熱圖函數的樹狀圖(Colv,Rowv)上的任何信息材料。 例如聚類的工作方式(是歐幾里德距離嗎?)。 您不必發表冗長的解釋,我已經對某些可以使我步入正軌的關鍵字感到滿意,因此我可以進行一些在線研究。
這是幫助手冊的摘錄,這使我有些困惑。 在這種情況下,“榮譽”是什么意思,它與重新排序有何不同?
如果Rowv或Colv是樹狀圖,則它們將受到尊重(而不是重新排序)。
Rowv
和Colv
控制是否應對數據集的行和列進行重新排序,以及是否應重新排序。
它們的可能值為TRUE
, NULL
, FALSE
,整數向量或樹狀圖對象。
在默認模式TRUE
,heatmap.2使用hclustfun
和distfun
參數執行聚類。 默認情況下,使用歐幾里德距離度量來完成鏈接聚類。 然后使用行/列方式對樹狀圖進行重新排序。 您可以通過為hclustfun
或distfun
指定不同的函數來控制它。 例如,要使用曼哈頓距離而不是歐式距離,您可以執行以下操作:
heatmap.2(x,...,distfun=function (y) dist(y,method = "manhattan") )
查看?dist
和?hclust
。 如果您想了解有關聚類的更多信息,可以從“距離度量”和“聚集方法”開始。
如果Rowv
/ Colv
為NULL
或FALSE
則不進行任何重新排序或聚類,並且按原樣繪制矩陣。
如果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.