gpt4 book ai didi

python - 如何使用树状图处理大量数据

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

我正在使用 python 2.7.9。
我用 scipy.cluster.hierarchy.dendrogram显示我的聚类结果。 Dendrogram here .一个问题是,我有大约 200 个数据。我看不清楚他们的标签。

...
z=linkage(dist, method='complete')
R=dendrogram(z, labels=mylabels)

enter image description here

1.我知道 R["ival"]具有与叶节点对应的标签,但是在如此密集的图中匹配值和数据并不是一件容易的事。

2.我想到了提取一部分数据。例如,左侧的绿色链接。在这个比例下,可以清楚地看到标签。我认为这是一种非常灵活的数据分析方式。但我不知道该怎么做。

3.我使用 leaf_label_func .我的目标是:当数据真正属于一个类时——例如cups——显示其名称/标签的一部分。例如,如果一个模型的名称为“cups_b1”,则只显示“b1”。所以,至少我可以一次看到我的数据的一类的位置。
def llf(id):
if id< nmodels:
mylabel=labels[id]
if mylabel.find("cups")!=-1:
index=mylabel.find("_")
outlabel=mylabel[index+1:]
return outlabel
else:
return "" #without the else part the function will return None, and that makes the output figure strange
R=dendrogram(z, leaf_label_func=llf, leaf_rotation=90 )

但即使这样,我也无法识别标签。

enter image description here

最佳答案

没有真正的好方法可以从树状图中从视觉上提取小细节。想到了几个解决方案。

处理图表外的集群数据。

from collections import defaultdict

clusterdict = defaultdict(list)
for ind,clust in zip(R['leaves'],R['color_list']):
clusterdict[clust].append(ind)

现在您可以单独探索每个集群。
In [50]:
clusterdict['g']

Out[50]:
[73, 8, 30, 14, 0, 67, 91, 60, 81, 61, 83, 22]

另一种选择是在两个轴 (x,y) 上打印树状图,如代码 here 所示。 .然后,如果您绝对必须看到图表上的标签,您可以在 x 轴上打印一半标签,在 y 轴上打印一半标签。

关于python - 如何使用树状图处理大量数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34836434/

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