Wie berechnet man Cluster-Zuweisungen aus Verknüpfungs- / Entfernungsmatrizen in scipy in Python?

Wenn Sie diesen hierarchischen Clustering-Aufruf in Python in scipy haben:

from scipy.cluster.hierarchy import linkage
# dist_matrix is long form distance matrix
linkage_matrix = linkage(squareform(dist_matrix), linkage_method)

Was ist dann ein effizienter Weg, um Clusterzuweisungen für einzelne Punkte zu erstellen? ein LängenvektorN woherN ist die Anzahl der Punkte, bei denen jeder Eintragi ist die Clusternummer des Punktesibei gegebener Anzahl von Clustern, die durch einen gegebenen Schwellenwert erzeugt werdenthresh auf dem resultierenden Clustering?

Zur Verdeutlichung: Die Clusternummer ist der Cluster, in dem sie sich befindet, nachdem dem Baum ein Schwellenwert zugewiesen wurde. In diesem Fall erhalten Sie für jeden Blattknoten einen eindeutigen Cluster für den Cluster, in dem er sich befindet. Einzigartig in dem Sinne, dass jeder Punkt zu einem "spezifischsten Cluster" gehört, der durch den Schwellenwert definiert ist, bei dem Sie das Dendrogramm schneiden.

ich weiß dasscipy.cluster.hierarchy.fclusterdata gibt Ihnen diese Clusterzuweisung als Rückgabewert, aber ich gehe von einer benutzerdefinierten Distanzmatrix und Distanzmetrik aus, sodass ich sie nicht verwenden kannfclusterdata. Die Frage lautet: Wie kann ich was berechnen?fclusterdata ist Computing - die Cluster-Zuweisungen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage