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.

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top