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 Punktesi
bei 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?