Cómo obtener identificadores de clúster no singleton en agrupación jerárquica scipy

De acuerdo con esto , podemos obtener tags para clusters no singleton.

Intenté esto con un ejemplo simple.

import numpy as np import scipy.cluster.hierarchy import matplotlib.pyplot as plt from scipy.cluster.hierarchy import dendrogram, linkage mat = np.array([[ 0. , 1. , 3. ,0. ,2. ,3. ,1.], [ 1. , 0. , 3. , 1., 1. , 2. , 2.], [ 3., 3. , 0., 3. , 3., 3. , 4.], [ 0. , 1. , 3., 0. , 2. , 3., 1.], [ 2. , 1., 3. , 2., 0. , 1., 3.], [ 3. , 2., 3. , 3. , 1. , 0. , 3.], [ 1. , 2., 4. , 1. , 3., 3. , 0.]]) def llf(id): if id < n: return str(id) else: return '[%d %d %1.2f]' % (id, count, R[n-id,3]) linkage_matrix = linkage(mat, "complete") dendrogram(linkage_matrix, p=4, leaf_label_func=llf, color_threshold=1, truncate_mode='lastp', distance_sort='ascending') plt.show() 

¿Qué es n, y cuente aquí? En un diagtwig como el siguiente, necesito saber quiénes se enumeran en (3) y (2)? introduzca la descripción de la imagen aquí

Related of "Cómo obtener identificadores de clúster no singleton en agrupación jerárquica scipy"

Creo que el documento no está muy claro en esta parte y el código de ejemplo que contiene no es operativo. Pero está claro que 1 significa la segunda observación y (3) significa que hay 3 observaciones en ese nodo.

Si quieres saber cuales son las 3 obs. en el 2do nodo, si esa es tu pregunta:

 In [51]: D4=dendrogram(linkage_matrix, color_threshold=1, p=4, truncate_mode='lastp', distance_sort='ascending') D7=dendrogram(linkage_matrix, color_list=['g',]*7, p=7, truncate_mode='lastp', distance_sort='ascending', no_plot=True) from itertools import groupby [list(group) for key, group in groupby(D7['ivl'],lambda x: x in D4['ivl'])] Out[51]: [['1'], ['6', '0', '3'], ['2'], ['4', '5']] 

El segundo nodo contiene obs. 7º, 1º y 4º, y el 2º nodo contiene las observaciones 5º y 6º.