¿Cómo calcular las asignaciones de clúster a partir de matrices de vinculación / distancia en scipy en Python?

Si tiene esta llamada de agrupamiento jerárquico en Scipy en Python:

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

Entonces, ¿cuál es una manera eficiente de pasar de esto a las asignaciones de cluster para puntos individuales? es decir, un vector de longitudN dóndeN es el número de puntos, donde cada entradai es el número de puntos del grupoi, dado el número de agrupaciones generadas por un umbral dadothresh en el agrupamiento resultante?

Para aclarar: el número de clúster sería el clúster en el que está después de aplicar un umbral al árbol. En cuyo caso, obtendría un grupo único para cada nodo de hoja para el grupo en el que se encuentra. Único en el sentido de que cada punto pertenece a un "grupo más específico" definido por el umbral donde se corta el dendrograma.

Yo sé esoscipy.cluster.hierarchy.fclusterdata le da esta asignación de grupo como su valor de retorno, pero estoy empezando desde una matriz de distancia y métrica de medida, por lo que no puedo usarfclusterdata. La pregunta se reduce a: ¿cómo puedo calcular qué?fclusterdata es la computación - las asignaciones de clúster?

Respuestas a la pregunta(2)

Su respuesta a la pregunta