栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何给sns.clustermap一个预先计算的距离矩阵?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何给sns.clustermap一个预先计算的距离矩阵?

您可以将预先计算的距离矩阵作为链接传递给

clustermap()

import pandas as pd, seaborn as snsimport scipy.spatial as sp, scipy.cluster.hierarchy as hcfrom sklearn.datasets import load_irissns.set(font="monospace")iris = load_iris()X, y = iris.data, iris.targetDF = pd.Dataframe(X, index = ["iris_%d" % (i) for i in range(X.shape[0])], columns = iris.feature_names)DF_corr = DF.T.corr()DF_dism = 1 - DF_corr   # distance matrixlinkage = hc.linkage(sp.distance.squareform(DF_dism), method='average')sns.clustermap(DF_dism, row_linkage=linkage, col_linkage=linkage)

对于

clustermap(distance_matrix)
(即,未通过链接),链接是基于距离矩阵中行和列的成对距离(在内部获得详细信息,在内部进行计算),而不是直接使用距离矩阵的元素(正确的解决方案)
。结果,输出与问题中的输出有些不同:


注意:如果没有

row_linkage
将传递给
clustermap()
,则通过将每行视为一个“点”(观察)并计算点之间的成对距离来内部确定行链接。因此行树状图反映了行相似性。与相似
col_linkage
,其中每列均视为一个点。此说明可能应该添加到docs中。在此修改文档的第一个示例,以使内部链接计算明确:

import seaborn as sns; sns.set()import scipy.spatial as sp, scipy.cluster.hierarchy as hcflights = sns.load_dataset("flights")flights = flights.pivot("month", "year", "passengers")row_linkage, col_linkage = (hc.linkage(sp.distance.pdist(x), method='average')  for x in (flights.values, flights.values.T))g = sns.clustermap(flights, row_linkage=row_linkage, col_linkage=col_linkage)   # note: this produces the same plot as "sns.clustermap(flights)", where  #  clustermap() calculates the row and column linkages internally


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/431481.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号