2012-04-18 15 views
8

Sto utilizzando Scipy per il clustering gerarchico. Riesco a ottenere ammassi piatti su una soglia usando Fcluster. Ma ho bisogno di visualizzare il dendrogramma formato. Quando uso il metodo dendrogram, funziona bene per i vettori utente 5-6k. Ma il mio dataser è costituito da 16k vettori utente. Quando l'eseguo per la funzione 16k utenti dendrogram getta il seguente errore:Diagramma dendrogramma in errore Scipy per set di dati di grandi dimensioni

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 

Tutte le idee su visualizzazione dendrogramma per dataser più grande?

+0

Un'idea semplice è di estendere la memoria, altrimenti potrebbe essere necessario immergersi nei dettagli dell'implementazione per rendere la memoria di routine amichevole. –

+0

@Maxwell, se hai trovato utile la risposta più votata, vai avanti e contrassegnala come corretta! :) – VedTopkar

+0

Mi è successa la stessa cosa, ma solo quando il clustering è stato eseguito con alcuni metodi (singolo, medio, completo), ma non in reparto. Mi chiedo che cosa scateni questo - quali sono le proprietà delle matrici di linkage della stessa dimensione che rendono la ricorsione così profonda? – user1603472

risposta

14

Potrebbe essere un po 'tardi, ma se ti senti a tuo agio ad aumentare il limite di ricorsione per sovvertire il limite di profondità della ricorsione, puoi farlo. Non è raccomandato, e sicuramente non è "pythonic", ma probabilmente ti porterà i risultati che desideri.

import sys 
sys.setrecursionlimit(10000) 
Problemi correlati