Informazioni sul valore di ritorno e sull'utilizzo di Scipy.cluster.Hierarchy.Fcluster
-
20-12-2019 - |
Domanda
Supponiamo di avere quattro osservazioni e il valore di ritorno di Scipy.cluster.Hierarchy.Linkge è:
[[ 1. 3. 0.08 2. ]
[ 2. 4. 0.28813559 3. ]
[ 0. 5. 1. 4. ]]
.
Questo valore di ritorno significa: le prime osservazioni 1 e 3 sono unite al nuovo cluster 4, quindi l'osservazione 2 viene aggiunta in questo nuovo cluster per formare un nuovo cluster 5. Finalmente l'osservazione 0 è cluster. Dal momento che voglio ottenere due cluster {1,3,2} e {0}, mi aspetto un valore di ritorno di [2.1,1,1] significa che l'elemento 0 appartiene al cluster 2 e il resto è raggruppato in un altro Cluster 1, utilizzando la soglia 0.4. Ma in realtà scipy.cluster.hierarchy.fluster restituisce [3 1, 2, 1]. Ovviamente posso scrivere il codice Python per analizzare l'array 2-D di restituzione del collegamento da solo, ma penso che la funzione fcluster possa restituire ciò che voglio se impostare la soglia per essere 0.4. Tuttavia, non so come fornire i parametri ad esso, quindi mi chiedo se è possibile fornire alcuni codici di esempio per condurre clustering gerarchico utilizzando linkage
e fornire il risultato finale utilizzando fcluster
con le osservazioni raggruppate in un cluster rappresentato da un set. Grazie.
Soluzione
fcluster
ha inconsistent
come argomento standard per il criterio da scegliere.Utilizzare distance
come argomento, per prendere la distanza cofenetica dalla matrice di collegamento Z[:,2]
.Potresti semplicemente utilizzare maxclust
come criterio se si desidera specificare il numero di cluster.Se sei raggruppato con un singolo collegamento, probabilmente alcuni cluster sono singletons (valori anomali).
Guida (fcluster) fornisce le informazioni necessarie su come utilizzare la funzione, quindi fai il Documenti