sklearn.metrics
.normalized_mutual_info_score¶
- sklearn.metrics.normalized_mutual_info_score()¶
Información Mutua Normalizada entre dos conglomerados.
La Información Mutua Normalizada (Normalized Mutual Information, NMI) es una normalización de la puntuación de la Información Mutua (Mutual Information, MI) para escalar los resultados entre 0 (sin información mutua) y 1 (correlación perfecta). En esta función, la información mutua se normaliza mediante una media generalizada de
H(labels_true)
yH(labels_pred))
, definida por elaverage_method
.Esta medida no está ajustada para el azar. Por lo tanto, podría ser preferible
adjusted_mutual_info_score
.Esta métrica es independiente de los valores absolutos de las etiquetas: una permutación de los valores de las etiquetas de la clase o del conglomerado no cambiará el valor de la puntuación de ninguna manera.
Esta métrica es además simétrica: si se cambia
label_true
porlabel_pred
devolverá el mismo valor de puntuación. Esto puede ser útil para medir la concordancia de dos estrategias independientes de asignación de etiquetas en el mismo conjunto de datos cuando no se conoce la verdad fundamental real.Leer más en el Manual de Usuario.
- Parámetros
- labels_truearreglo de entero, forma = [n_samples]
Un conglomerado de los datos en subconjuntos disjuntos.
- labels_predint array-like de forma (n_samples,)
Un conglomerado de los datos en subconjuntos disjuntos.
- average_methodstr, default=”arithmetic”
Cómo calcular el normalizador en el denominador. Las opciones posibles son “min”, “geometric”, “arithmetic” y “max”.
Nuevo en la versión 0.20.
Distinto en la versión 0.22: El valor predeterminado de
average_method
cambió de “geometric” a “arithmetic”.
- Devuelve
- nmifloat
puntuación entre 0.0 y 1.0. 1.0 significa un etiquetado perfectamente completo
Ver también
v_measure_score
V-Measure (NMI con opción de media aritmética).
adjusted_rand_score
Índice de Rand ajustado (adjusted Rand Index).
adjusted_mutual_info_score
Información Mutua Ajustada (ajustada contra el azar).
Ejemplos
Los etiquetados perfectos son homogéneos y completos, por lo que tienen una puntuación de 1.0:
>>> from sklearn.metrics.cluster import normalized_mutual_info_score >>> normalized_mutual_info_score([0, 0, 1, 1], [0, 0, 1, 1]) ... 1.0 >>> normalized_mutual_info_score([0, 0, 1, 1], [1, 1, 0, 0]) ... 1.0
Si los miembros de las clases están completamente divididos en diferentes conglomerados, la asignación es totalmente incompleta, por lo que el NMI es nulo:
>>> normalized_mutual_info_score([0, 0, 0, 0], [0, 1, 2, 3]) ... 0.0