![](/img/trans.png)
[英]Issues with Seaborn clustermap using a pre-computed Distance Correlation matrix
[英]Pass distance matrix to seaborn clustermap
我想將我自己的距離矩陣(行鏈接)傳遞給 seaborn clustermap。
已經有一些這樣的帖子
在 scipy.cluster.hierarchy.linkage() 中使用距離矩陣?
但他們都指向
它將聚類度量和方法作為參數。
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.