我正在使用Scipy进行分层聚类。我确实设法使用 fcluster 在阈值上获得平面集群。但我需要可视化形成的树状图。当我使用树状图方法时,它适用于 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
关于为更大的数据集可视化树状图的任何想法?
晚了,但如果你愿意增加递归限制来颠覆递归深度限制,你可以这样做。不推荐它,绝对不是"pythonic",但它可能会给你你想要的结果。
import sys
sys.setrecursionlimit(10000)
使用 sys.setrecursionlimit(1000000),我能够处理一个大矩阵并成功返回一个 seaborn.clustermap 调用。我想这个错误也可以通过升级 scipy 或提供额外的参数并使用 scipy 更周到地构建集群图来解决。