Como calcular atribuições de cluster de matrizes de linkage / distance no scipy em Python?
se você tiver essa chamada hierárquica de clustering no scipy em Python:
from scipy.cluster.hierarchy import linkage
# dist_matrix is long form distance matrix
linkage_matrix = linkage(squareform(dist_matrix), linkage_method)
então, qual é uma maneira eficiente de ir a partir de atribuições de cluster para pontos individuais? ou seja, um vetor de comprimentoN
OndeN
é o número de pontos, onde cada entradai
é o número do cluster de pontoi
, dado o número de clusters gerados por um determinado limiarthresh
no clustering resultante?
Para esclarecer: O número do cluster seria o cluster em que ele está após aplicar um limite à árvore. Nesse caso, você obteria um cluster exclusivo para cada nó folha do cluster em que se encontra. Único no sentido de que cada ponto pertence a um "cluster mais específico", definido pelo limite em que você corta o dendrograma.
Eu sei dissoscipy.cluster.hierarchy.fclusterdata
dá a você essa atribuição de cluster como seu valor de retorno, mas eu estou começando a partir de uma matriz de distância personalizada e métrica de distância, então não posso usarfclusterdata
. A questão se resume a: como posso calcular o quefclusterdata
está computando - as atribuições de cluster?