gpt4 book ai didi

python - 将距离矩阵传递给 seaborn clustermap

转载 作者:行者123 更新时间:2023-12-03 23:11:00 25 4
gpt4 key购买 nike

我想将我自己的距离矩阵(行链接)传递给 seaborn clustermap。
已经有一些这样的帖子
Use Distance Matrix in scipy.cluster.hierarchy.linkage()?
但他们都指向
scipy hierarchy linkage
它将聚类度量和方法作为参数。

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

The input y may be either a 1d condensed distance matrix or a 2d arrayof observation vectors


我不明白的是:

My distance matrix is already based on a certain metric and method,why would I want to recalculate this in scipy hierarchy linkage ?

Is there an option where it purely uses my distances and creates the linkages?

最佳答案

对于后代,这里是如何做到这一点的完整方法,因为评论中的@WarrenWeckesser 和链接答案中的@SibbsGambling 省略了一些细节。

假设 distMatrix是你的距离矩阵(不必是欧几里得),在行 i 中输入和专栏j代表 i 之间的距离th 和 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 时包含该选项.

关于python - 将距离矩阵传递给 seaborn clustermap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57308725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com