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í

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º.