sklearn.metrics
.adjusted_rand_score¶
- sklearn.metrics.adjusted_rand_score()¶
Índice de rand ajustado para el azar.
El Índice de Rand calcula una medida de similitud entre dos conglomerados considerando todos los pares de muestras y contando los pares que se asignan en los mismos o diferentes conglomerados en las agrupaciones predichas y verdaderas.
La puntuación bruta de RI se «ajusta por casualidad» en la puntuación ARI utilizando el siguiente esquema:
ARI = (RI - Expected_RI) / (max(RI) - Expected_RI)
Por lo tanto, el índice de Rand ajustado está asegurado de tener un valor cercano a 0.0. para etiquetado aleatorio independiente del número de conglomerados y muestras y exactamente 1.0 cuando las agrupaciones son idénticas (hasta una permutación).
ARI es una medida simétrica:
adjusted_rand_score(a, b) == adjusted_rand_score(b, a)
Más información en el Manual de usuario.
- Parámetros
- labels_truearreglo de enteros, forma = [n_samples]
Las etiquetas cLase de verdad fundamental a ser usadas como referencia
- labels_predarray-like de forma (n_samples,)
Etiquetas de clúster a evaluar
- Devuelve
- ARIflotante
Puntuación de similitud entre -1.0 y 1.0. Las etiquetas aleatorias tienen un ARI cercano a 0.0. 1.0 es una coincidencia perfecta.
Ver también
adjusted_mutual_info_score
Información Mutua Ajustada (AMI en inglés).
Referencias
- Hubert1985
L. Hubert and P. Arabie, Comparing Partitions, Journal of Classification 1985 https://link.springer.com/article/10.1007%2FBF01908075
- Steinley2004
D. Steinley, Properties of the Hubert-Arabie adjusted Rand index, Psychological Methods 2004
- wk
https://en.wikipedia.org/wiki/Rand_index#Adjusted_Rand_index
Ejemplos
Las etiquetas que coinciden perfectamente tienen una puntuación de 1 par
>>> from sklearn.metrics.cluster import adjusted_rand_score >>> adjusted_rand_score([0, 0, 1, 1], [0, 0, 1, 1]) 1.0 >>> adjusted_rand_score([0, 0, 1, 1], [1, 1, 0, 0]) 1.0
Las etiquetas que asignan a todos los miembros de las clases a los mismos conglomerados son completos, pero pueden no ser siempre puros, por lo que están penalizados:
>>> adjusted_rand_score([0, 0, 1, 2], [0, 0, 1, 1]) 0.57...
ARI es simétrico, por lo que las etiquetas que tienen conglomerados puros con miembros viniendo de las mismas clases pero con divisiones innecesarias son penalizadas:
>>> adjusted_rand_score([0, 0, 1, 1], [0, 0, 1, 2]) 0.57...
Si los miembros de las clases están completamente divididos en diferentes conglomerados, la asignación es totalmente incompleta, por lo que el ARI es muy bajo:
>>> adjusted_rand_score([0, 0, 0, 0], [0, 1, 2, 3]) 0.0