Matrices de confusión

Autor: Julià Minguillón

Los textos e imágenes publicados en esta obra están sujetos (excepto que se indique lo contrario) a una licencia de Reconocimiento-Compartir igual (BY-SA) v.3.0 España de Creative Commons. Se puede modificar la obra, reproducirla, distribuirla o comunicarla públicamente siempre que se cite el autor y la fuente (FUOC. Fundació per a la Universitat Oberta de Catalunya), y siempre que la obra derivada quede sujeta a la misma licencia que el material original. La licencia completa se puede consultar en: http://creativecommons.org/licenses/by-sa/3.0/es/legalcode.es

1. Ciclo de vida

3. Ámbito de aplicación

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