5

我有以下用 SciPy 制作的树状图:

# create the dendrogram
from scipy.cluster import hierarchy as hc
from scipy.stats import spearmanr as sp
import matplotlib.pyplot as plt
%matplotlib inline

corr = np.round(sp(data_for_cluster).correlation, 4)
corr_condensed = hc.distance.squareform(1-corr)
z = hc.linkage(corr_condensed, method='average')
fig = plt.figure(figsize=(20,35))
dendrogram = hc.dendrogram(z, labels=vals_to_keep, orientation='left', 
leaf_font_size=14)
plt.show()

这给出了以下图片:

在此处输入图像描述

我不太确定如何解释树状图中的颜色。从文档中,它给出了color_threshold参数的以下描述:

为简洁起见,设 t 为 color_threshold。如果 k 是低于切割阈值 t 的第一个节点,则将集群节点 k 下方的所有后代链接着色为相同颜色。连接距离大于或等于阈值的节点的所有链接都显示为蓝色。如果 t 小于或等于 0,则所有节点都为蓝色。如果 color_threshold 为 None 或“默认”,对应于 MATLAB(TM) 行为,则阈值设置为 0.7*max(Z[:,2])。

然而,让我感到困惑的是,为什么一些看起来非常接近的集群没有被赋予不同的颜色,而其他距离更远的集群............

我认为,在其他条件相同的情况下,集群越近,它们就越有可能成为不同的颜色,以表示集群成员资格,但情况似乎并非如此。

4

0 回答 0