在 seaborn 的 clustermap() 中进行 z 评分时忽略 std=0 的特征
Posted
技术标签:
【中文标题】在 seaborn 的 clustermap() 中进行 z 评分时忽略 std=0 的特征【英文标题】:Ignore features with std=0 when z-scoring in seaborn's clustermap() 【发布时间】:2021-09-11 12:28:54 【问题描述】:我用于使用 seaborn 的 clustermap()
函数创建热图的数据有时具有标准偏差 std = 0
的特征。
当使用函数的参数z_score = True
进行规范化时,这会提示ValueError: The condensed distance matrix must contain only finite values
。
有没有办法排除 z 评分的这些特征以避免压缩距离矩阵中的无限值?
【问题讨论】:
【参考方案1】:而不是使用函数的z_score
参数与
sns.clustermap(df, cmap="seismic", method="ward", z_score=True)
来自scipy.stats
的zscore()
可以与lambda
函数一起使用,以预先使用std != 0
对列进行z-score。
from scipy.stats import zscore
sns.clustermap(df.apply(lambda col: zscore(col) if col.std()!=0 else col, axis=0),
cmap="seismic", method="ward")
【讨论】:
以上是关于在 seaborn 的 clustermap() 中进行 z 评分时忽略 std=0 的特征的主要内容,如果未能解决你的问题,请参考以下文章
在 seaborn 的 clustermap() 中进行 z 评分时忽略 std=0 的特征
显示与行颜色对应的seaborn clustermap的图例
如何给 sns.clustermap 一个预先计算的距离矩阵?