Sobre o valor de retorno e o uso de scipy.cluster.hierarquia.fcluster
-
20-12-2019 - |
Pergunta
Suponha que nós temos quatro observações e o valor de retorno de scipy.cluster.hierarquia.a ligação é:
[[ 1. 3. 0.08 2. ]
[ 2. 4. 0.28813559 3. ]
[ 0. 5. 1. 4. ]]
Este valor de retorno significa:as primeiras observações 1 e 3 são mesclados para novo cluster 4 e, em seguida, a observação 2 é adicionado para este novo cluster para formar um novo cluster 5.Finalmente, a observação de 0 é agrupado.Desde que eu quiser obter dois conjuntos {1,3,2} e {0}, espero que um valor de retorno de [2,1,1,1] o que significa que o elemento 0 pertence ao cluster 2 e o resto são agrupadas em outro cluster 1, usando o limite de 0,4.Mas, na verdade, scipy.cluster.hierarquia.fcluster retorna [ 3 1, 2 ,1 ].Claro, eu posso escrever código python para analisar a ligação de retornar matriz 2-D por mim, mas eu acho que o fcluster função pode retornar o que eu quero, se eu definir o limite de 0,4.No entanto, eu não sei como fornecer parâmetros para ele, então eu me pergunto se você poderia fornecer com alguns exemplos de códigos de conduta hierárquica de cluster usando linkage
e dar o resultado final usando fcluster
com as observações agrupadas em um cluster representado por um conjunto.Obrigado.
Solução
fcluster
tem inconsistent
como padrão argumento de que o critério para escolher.Utilização distance
como argumento, para tirar o cophenetic distância da ligação matriz Z[:,2]
.Você pode apenas usar maxclust
como critério, se você deseja especificar o número de clusters.Se você está de clustering com ligação simples, a probabilidade de alguns clusters são singletons (outliers).Ajuda(fcluster) dá as informações necessárias sobre como utilizar a função, então, fazer a docs