2012-04-18 26 views
8

Tôi đang sử dụng Scipy cho phân cụm theo cấp bậc. Tôi quản lý để có được các cụm phẳng trên một ngưỡng sử dụng fcluster. Nhưng tôi cần hình dung dendrogram được hình thành. Khi tôi sử dụng phương pháp dendrogram, nó hoạt động tốt cho 5-6k vectơ người dùng. Nhưng dataser của tôi bao gồm 16k vector người dùng. Khi tôi chạy nó cho 16k người dùng chức năng dendrogram ném các lỗi sau đây:Lập biểu đồ dendrogram trong lỗi Scipy cho tập dữ liệu lớn

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 

Bất kỳ ý tưởng về hình dung dendrogram cho dataser lớn hơn?

+0

Một ý tưởng đơn giản là để mở rộng bộ nhớ của bạn, nếu không bạn có thể cần phải đi sâu vào chi tiết triển khai để làm cho bộ nhớ thông thường thân thiện. –

+0

@Maxwell, nếu bạn thấy câu trả lời bình chọn cao nhất hữu ích thì hãy tiếp tục và đánh dấu nó là chính xác! :) – VedTopkar

+0

Tôi đã có cùng một điều xảy ra với tôi, nhưng chỉ khi phân cụm được thực hiện với một số phương pháp (duy nhất, trung bình, hoàn thành), nhưng không phường. Tôi tự hỏi điều gì gây nên điều này - các thuộc tính của các ma trận liên kết kích thước giống nhau làm cho đệ quy đi sâu như thế nào? – user1603472

Trả lời

14

Điều này có thể hơi trễ một chút, nhưng nếu bạn cảm thấy thoải mái khi tăng giới hạn đệ quy của bạn để hủy giới hạn độ sâu đệ quy, bạn có thể làm như vậy. Nó không được khuyến khích, và chắc chắn không phải là 'pythonic', nhưng nó có thể sẽ giúp bạn có được kết quả mong muốn.

import sys 
sys.setrecursionlimit(10000) 
Các vấn đề liên quan