15

我正在使用 Scipy 进行层次聚类。我确实设法使用 fcluster 在阈值上获得平坦的集群。但我需要可视化形成的树状图。当我使用 dendrogram 方法时,它适用于 5-6k 用户向量。但我的数据分析器由 16k 个用户向量组成。当我为 16k 用户运行它时,树形图函数会引发以下错误:

File "/home/enthought/lib/python2.7/site-packages/scipy/cluster/hierarchy.py", line 2333, in _dendrogram_calculate_info
leaf_label_func, i, labels)
File "/home/enthought/lib/python2.7/site-packages/scipy/cluster/hierarchy.py", line 2205, in _append_singleton_leaf_node
ivl.append(str(int(i)))
RuntimeError: maximum recursion depth exceeded while getting the str of an object

关于为更大的数据服务器可视化树状图的任何想法?

4

2 回答 2

27

这可能有点晚了,但是如果您对增加递归限制以颠覆递归深度限制感到满意,您可以这样做。不推荐,也绝对不是“pythonic”,但它可能会为您提供您想要的结果。

import sys
sys.setrecursionlimit(10000)
于 2013-08-01T21:48:21.043 回答
1

使用 sys.setrecursionlimit(1000000) 我能够处理一个大矩阵并成功返回一个 seaborn.clustermap 调用。我想这个错误也可以通过升级 scipy 或提供额外的参数并使用 scipy 更周到地构建集群图来解决。

于 2020-02-04T22:30:16.837 回答