簡體   English   中英

將距離矩陣傳遞給 seaborn clustermap

[英]Pass distance matrix to seaborn clustermap

我想將我自己的距離矩陣(行鏈接)傳遞給 seaborn clustermap。

已經有一些這樣的帖子

在 scipy.cluster.hierarchy.linkage() 中使用距離矩陣?

但他們都指向

scipy 層次結構鏈接

它將聚類度量和方法作為參數。

scipy.cluster.hierarchy.linkage(y, method='single', metric='euclidean', optimization_ordering=False)

輸入 y 可以是一維壓縮距離矩陣或二維觀察向量數組

我不明白的是:

我的距離矩陣已經基於某種度量和方法,為什么我要在scipy 層次結構鏈接中重新計算它?

是否有一個選項可以純粹使用我的距離並創建鏈接?

對於后代,這里是如何做到這一點的完整方法,因為評論中的@WarrenWeckesser 和鏈接答案中的@SibbsGambling 省略了一些細節。

假設distMatrix是距離矩陣(不必是歐幾里得),第i行和第j列中的條目表示第i個和第j個對象之間的距離。 然后:

# import packages
from scipy.cluster import hierarchy
import scipy.spatial.distance as ssd
import seaborn as sns

# define distance array as in linked answer
distArray = ssd.squareform(distMatrix) 

# define linkage object
distLinkage = hierarchy.linkage(distArray)

# make clustermap
sns.clustermap(distMatrix, row_linkage=distLinkage, col_linkage=distLinkage)

請注意,在創建clustermap ,您仍然必須引用原始矩陣。 如果您想使用不同的聚類方法,例如method='ward' ,請在定義distLinkage時包含該選項。

暫無
暫無

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

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