在 seaborn 的 clustermap() 中进行 z 评分时忽略 std=0 的特征
Ignore features with std=0 when z-scoring in seaborn's clustermap()
我使用 seaborn 的 clustermap()
函数创建热图的数据有时具有标准偏差 std = 0
.
的特征
这会在使用函数的参数 z_score = True
进行规范化时提示 ValueError: The condensed distance matrix must contain only finite values
。
有没有办法排除那些用于 z 评分的特征,以避免压缩距离矩阵中出现无穷大的值?
而不是将函数的 z_score
参数与
一起使用
sns.clustermap(df, cmap="seismic", method="ward", z_score=True)
scipy.stats
中的 zscore()
可以与 lambda
函数一起使用,以便预先对具有 std != 0
的列进行 z 评分。
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()
函数创建热图的数据有时具有标准偏差 std = 0
.
这会在使用函数的参数 z_score = True
进行规范化时提示 ValueError: The condensed distance matrix must contain only finite values
。
有没有办法排除那些用于 z 评分的特征,以避免压缩距离矩阵中出现无穷大的值?
而不是将函数的 z_score
参数与
sns.clustermap(df, cmap="seismic", method="ward", z_score=True)
scipy.stats
中的 zscore()
可以与 lambda
函数一起使用,以便预先对具有 std != 0
的列进行 z 评分。
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")