Descripción
Cuando se usa un algoritmo de clasificación sobre un conjunto de datos, lo que hacemos es medir lo preciso que es, mirando si la clase asignada a cada elemento clasificado coincide con la real. Podemos medir la precisión de manera sencilla observando, por ejemplo, el porcentaje de elementos bien clasificados respeto al total.
Más formalmente, si tenemos un conjunto de N datos con K>1 clases diferentes, y tenemos N1, …, NK elementos de cada clase, y construimos un clasificador, este nos devolverá una clase por cada elemento, que podrá coincidir o no con la original. Esto lo podemos representar con lo que se conoce como matriz de confusión. Supongamos que K = 3:
Real/predicción | Clase 1 | Clase 2 | Clase 3 | Total |
Clase 1 | N1,1 | N1,2 | N1,3 | N1 |
Clase 2 | N2,1 | N2,2 | N2,3 | N2 |
Clase 3 | N3,1 | N3,2 | N3,3 | N3 |
Aquí Ni,j representa el número de elementos de la clase y clasificados como j. Un clasificador perfecto nos dejaría todos los elementos en la diagonal, es decir, Ni,i=Ni y Ni,j=0 para todo i ≠ j. Tened en cuenta que la matriz traspuesta continúa siendo una matriz de confusión y a veces las encontraréis de una manera o de otra; ¡no os equivoquéis a la hora de interpretarla!
Tal y como hemos comentado antes, la precisión de nuestro modelo sería (N1,1 + N2,2 + N3,3) / N, pero podemos definir muchas otras mediciones a partir de la distribución de los Ni,j, es decir, de cómo lo hace nuestro clasificador.
Para el caso más común, K = 2, la literatura define muchos conceptos que pueden calcularse a partir de la matriz de confusión, como por ejemplo la especificidad, la sensitividad o lo que se conoce como F1.
Enlace al recurso
https://onlineconfusionmatrix.com/
Ejemplo de uso
Supongamos que tenemos un conjunto de datos sobre personas usuarias de Netflix, en el que hay novecientos hombres y cien mujeres, y a partir de ciertas mediciones (por ejemplo, el uso que hacen de un servicio cualquiera, como por ejemplo qué series y qué películas ven en Netflix) un algoritmo nos clasifica si una persona usuaria es un hombre o una mujer, y lo hace con la siguiente matriz de confusión:
Real/Predicción | Hombre | Mujer | Total |
Hombre | 900 | 0 | 900 |
Mujer | 90 | 10 | 100 |
Podemos pensar que nuestro algoritmo lo hace muy bien porque acierta 900+10 personas usuarias de 1.000, un 91 % de precisión, pero, ¿realmente lo está haciendo bien? Pues para los hombres sí, los acierta todos (el 100 %), pero para las mujeres lo hace fatal; solo es capaz de clasificar bien el 10 %, seguramente porque nuestro algoritmo sufre un sesgo causado por un conjunto de datos muy desequilibrado. Con otras mediciones más allá de la simple precisión podemos darnos cuenta de este problema y tratar de corregirlo, e interpretar lo que nos dice la matriz de confusión.
En la asignatura de Minería de datos, del grado de Ciencia de Datos Aplicada de la UOC, deberéis evaluar vuestros modelos mediante matrices de confusión.
Enlaces relacionados
Análisis de tablas de contingencia: https://statpages.info/ctab2x2.html
Sensitividad y especificidad en Wikipedia: https://en.wikipedia.org/wiki/sensitivity_and_specificity
Valor F en Wikipedia: https://en.wikipedia.org/wiki/f-score