Evaluación de clasificadores

En los propósitos para 2020 me marcaba como objetivo recuperar el ritmo en el Máster en Sistemas Inteligentes que curso y escribir más artículos técnicos en el blog. Cada persona aprende de un modo diferente: en mi caso aprendo mejor cuando practico, escribo sobre el tema o ayudo a otras personas. Soy de los que no se acuerdan de lo que comieron ayer, del tipo de personas que puede ver un capítulo de los Simpson veinte veces y disfrutarlo como la primera vez porque no recuerdan haberlo visto antes. Si me limito a leer y hacer un par de ejercicios me olvidaré del tema dos días más tarde. Como además el tiempo es un recurso limitado, y donde caben dos no siempre caben tres, he aprendido a intentar que cada cosa que hago sirva a varios propósitos. Por ejemplo, recuperar ritmo en el Máster escribiendo artículos técnicos sobre el tema. Vamos allá.

Clasificadores

Aunque intentaré dar una visión más completa de clasificadores en el futuro, en esencia un clasificador es un algoritmo que intenta atribuir una clase concreta a cada uno de los casos de un conjunto de datos en base a sus características. Para cada una de las frutas y verduras que llevamos en la cesta de la compra, si es verde y redondo posiblemente sea una manzana. Si es alargado, quizá sea un pepino. Os hacéis una idea.

Supongamos que estamos planeando una barbacoa con los amigos. Un día de lluvia nos arruinaría la barbacoa, por lo que tomaremos la decisión de hacer o no nuestra barbacoa basándonos en la predicción del tiempo el día anterior. Si creemos que va a hacer buen tiempo compraremos la comida y la bebida, cargaremos el coche con los trastos y enviaremos un whatsapp al grupo de amigos para reunirnos todos mañana allí. Si no, nos quedaremos cada uno en su casa bajo la mantita viendo Netflix.

Matriz de confusión

Definiremos «solazo» como nuestra clase positiva y «lluvia» como nuestra clase negativa. Lo que puede ocurrir es lo siguiente:

Verdadero Positivo (True Positive, TP): Falso negativo (False Negative, FN):
Predicción solazo (+)
Realidad solazo (+)
Resultado ¡La barbacoa es un éxito! Todo el mundo se lo pasa genial y hasta hemos cogido algo de colorcito con el sol.
Predicción lluvia (-)
Realidad solazo (+)
Resultado Nos hemos quedado en casa viendo a RuPaul con un tiempo espectacular. Glamuroso, pero triste.
Falso positivo (False Positive, FP): Verdadero negativo (True Negative, TN):
Predicción solazo (+)
Realidad lluvia (-)
Resultado Hemos gastado un pastizal en comida y bebida para nada y aún hay que descargar el coche. Cabreo generalizado.
Predicción lluvia (-)
Realidad lluvia (-)
Resultado ¡Un éxito! Nada mejor que sofá y mantita para pasar un día de lluvia.

Si llevásemos el conteo de la predicción del tiempo respecto a la realidad cada vez que hemos intentado organizar una barbacoa, cada una de estas veces sería un caso de nuestro conjunto de datos.

Caso Predicción Realidad Tipo de clasificación
1 solazo (+) lluvia (-) FP
2 solazo (+) solazo (+) TP
3 solazo (+) solazo (+) TP
4 lluvia (-) lluvia (-) TN
5 lluvia (-) lluvia (+) TN
6 lluvia (-) lluvia (-) TN
7 solazo (+) lluvia (-) FP
8 solazo (+) lluvia (-) FP
9 lluvia (-) solazo (+) FN
10 lluvia (-) lluvia (-) TN

Con estas clasificaciones, podemos elaborar una matriz de confusión: un conteo de los casos clasificados correcta o incorrectamente como positivos o negativos.

Matriz de confusión Predicción
+
Realidad + TP = 2 FN = 1
FP = 3 TN = 4

A la hora de determinar si un modelo es mejor o peor, podemos utilizar algunos criterios de evaluación aplicados sobre esta matriz de confusión.

Tasas de error y acierto

La medida de evaluación más inmediata es la tasa de error (Error Rate, Er):

Er = \frac{FP+FN}{TP+TN+FP+FN}

Y su contrapartida, la tasa de acierto (Accuracy, Ac):

Ac = 1 - Er = \frac{TP+TN}{TP+TN+FP+FN}

En el ejemplo de nuestra barbacoa, las tasas de error y acierto serán entonces:

Er = \frac{3+1}{2+4+3+1} = 0,4 = 40\%

Ac = \frac{2+4}{2+4+3+1} = 0,6 = 60\%

Para un conjunto de datos monoclase (o hace sol o no lo hace) es trivial generar su matriz de confusión y derivar de ella sus métricas. Para los conjuntos de datos multiclase (¿es una manzana, un pepino, una calabaza,…?) podemos generar una matriz de confusión por cada una de las clases y, a la hora de generar las métricas, combinarlas por ejemplo con una media ponderada por el número de casos de cada clase:

Matriz de confusión Predicción
a b c
Realidad a 5 0 0
b 0 3 1
c 1 2 12
Matriz de confusión (a) Predicción
+
Realidad + 5 0
1 18 (=3+1+2+12)
Matriz de confusión (b) Predicción
+
Realidad + 3 1
2 18 (=5+0+1+12)
Matriz de confusión (c) Predicción
+
Realidad + 12 3
1 8 (=5+0+0+3)

Er = \frac{5\times Er_a + 4\times Er_b + 15\times Er_c}{5+4+15}

Precisión y sensibilidad

La precisión (Precision, Pr) y sensibilidad (Recall, Re) de un clasificador deben calcularse de forma conjunta, van de la mano.

La precisión responde a la pregunta «¿Qué proporción de predicciones positivas fue correcta?»:

Pr = \frac{TP}{TP+FP}

Por su parte, la sensibilidad responde a la pregunta «¿Qué proporción de observaciones reales se predijo correctamente?»:

Re = \frac{TP}{TP+FN}

A la sensibilidad se le pude llamar también exhaustividad o Tasa de Verdaderos Positivos (True Positives Rate, TPR), la probabilidad de que un caso positivo sea clasificado como tal. En ese caso suele ir de la mano de la Tasa de Falsos Positivos (False Positives Rate, FPR), la probabilidad de que un caso negativo sea clasificado como positivo:

TPR = Re = \frac{TP}{TP+FN}

FPR = \frac{FP}{FP+TN}

En el ejemplo de nuestra barbacoa, la precisión sería:

Pr = \frac{2}{2+3} = 0,40

Es decir: para la pregunta «¿qué proporción de días soleados previstos fueron realmente soleados?» tenemos un 40% de acierto.

La sensibilidad o Tasa de Verdaderos Positivos es:

Re = TPR = \frac{2}{2+1} = 0,67

Mientras que la Tasa de Falsos Positivos es:

FPR =  \frac{3}{3+4} = 0,43

Es decir: para la pregunta «¿qué proporción de días soleados reales fueron acertadamente previstos?» el clasificador predijo correctamente el 67% de los días soleados. Y para la pregunta «¿qué proporción de días de lluvia fueron predichos como soleados?» el clasificador predijo erróneamente como soleados el 43% de los días de lluvia.

Realidad Probabilidad de acierto Probabilidad de fallo
soleado (+) Pr = 40% 60%
lluvia (-) 80% 20%
Predicción Probabilidad de acierto Probabilidad de fallo
soleado (+) Re = TPR = 67% 33%
lluvia (-) 57% FPR = 43%

Podemos agrupar los clasificadores en liberales y conservadores. Un clasificador liberal (baja precisión, alta sensibilidad) clasifica como positivos incluso los casos dudosos. Los clasificadores liberales son útiles cuando hay muchos casos positivos y el coste de un falso negativo es alto. Un clasificador conservador (alta precisión, baja sensibilidad) clasifica como negativo salvo gran certeza. Los clasificadores conservadores son útiles cuando hay pocos casos positivos y el coste asociado a un falso positivo es alto.

Curva PRC

Algunos clasificadores permiten ajustar su nivel de conservadurismo/liberalismo, y en función del contexto nos interesará situarnos más en uno u otro extremo. A menudo hay una cierta tensión entre precisión y sensibilidad: al mejorar uno, empeora el otro. Al punto en que ambos coinciden (Pr=Re) lo llamamos Break-even point.

Para visualizar esto podemos imaginar que nuestro modelo de predicción del tiempo nos devuelve la probabilidad de que el día sea soleado. Para valores de probabilidad mayores que un cierto límite l, determinamos que el día será soleado (+) o lluvioso (-).

Probabilidad de sol 0.10 0.20 0.25 0.36 0.42 0.51 0.57 0.72 0.82
Predicción (l=0.50) ⛈️ ⛈️ ⛈️ ⛈️ ⛈️ ☀️ ☀️ ☀️ ☀️
Realidad ☀️ ⛈️ ⛈️ ☀️ ⛈️ ⛈️ ☀️ ☀️ ☀️

Si obtenemos la matriz de confusión de este clasificador y su precisión y sensibilidad tenemos:

Matriz de confusión Predicción
+
Realidad + TP = 3 FN = 2
FP = 1 TN = 3

Pr = \frac{TP}{TP+FP} = \frac{3}{3+1} = 0,75

Re = TPR = \frac{TP}{TP+FN} = \frac{3}{3+2} = 0,60

Si aumentamos el límite habrá menos falsos positivos, pero en contrapartida se incrementará también el número de falsos negativos. Incrementará la precisión pero bajará la sensibilidad.

Probabilidad de sol 0.10 0.20 0.25 0.36 0.42 0.51 0.57 0.72 0.82
Predicción (l=0.60) ⛈️ ⛈️ ⛈️ ⛈️ ⛈️ ⛈️ ⛈️ ☀️ ☀️
Realidad ☀️ ⛈️ ⛈️ ☀️ ⛈️ ⛈️ ☀️ ☀️ ☀️
Matriz de confusión Predicción
+
Realidad + TP = 2 FN = 3
FP = 0 TN = 4

Pr = \frac{TP}{TP+FP} = \frac{2}{2+0} = 1

Re = TPR = \frac{TP}{TP+FN} = \frac{2}{2+3} = 0,40

Si probamos a bajar el límite ocurrirá lo contrario: tendremos más falsos positivos y menos falsos negativos. Bajará la precisión, mientras que subirá la sensibilidad.

Probabilidad de sol 0.10 0.20 0.25 0.36 0.42 0.51 0.57 0.72 0.82
Predicción (l=0.35) ⛈️ ⛈️ ⛈️ ☀️ ☀️ ☀️ ☀️ ☀️ ☀️
Realidad ☀️ ⛈️ ⛈️ ☀️ ⛈️ ⛈️ ☀️ ☀️ ☀️
Matriz de confusión Predicción
+
Realidad + TP = 4 FN = 1
FP = 2 TN = 2

Pr = \frac{TP}{TP+FP} = \frac{4}{4+2} = 0,67

Re = TPR = \frac{TP}{TP+FN} = \frac{4}{4+1} = 0,80

Como utilizar dos criterios a la vez es un engorro nos sacamos de la manga una medida que englobe a los dos, a la que llamamos F1 Score o F-Measure:

F = 2\times \frac{Pr\times Re}{Pr + Re}

Como veremos más adelante para la curva ROC, el área bajo la curva PRC nos da otra medida que engloba a Pr y Re de forma independiente de escala y límite de la relación entre Precisión y Sensibilidad y, por tanto, del rendimiento del clasificador.

Curva ROC

Si decimos que es posible ajustar precisión y sensibilidad en algunos clasificadores, y que uno va normalmente ligado al otro, necesitamos un modo de visualizar la evolución de sus valores en función de este ajuste.

Una curva ROC (Receiver Operating Characteristics curve) es una gráfica que muestra el rendimiento de clasificación de un modelo, relacionando su Tasa de Verdaderos Positivos (TPR) y su Tasa de Falsos Positivos (FPR).

El clasificador perfecto capaz de discriminar todos los casos correctamente dibujaría una línea perfectamente alineada en el eje superior, mientras que un clasificador totalmente aleatorio mantiene una relación constante entre su TPR y FPR sin importar el criterio límite que le impongamos.

Dado que la curva ROC nos permite comparar clasificadores, podemos utilizarla para seleccionar uno u otro en función del contexto. En la gráfica a continuación, el clasificador naranja es mejor en entornos conservadores donde el coste asociado a un falso positivo es alto. El azul será preferible en entornos liberales, en los que el coste de un falso negativo sea elevado.

Para trazar la curva ROC necesitaríamos evaluar TPR y FPR con diferentes límites, pero eso es extremadamente ineficiente. Afortunadamente, tenemos otra manera de obtener esta información.

AUC: Area Under (ROC) Curve

El AUC mide el área bajo la curva ROC entre (0,0) y (1,1), y por tanto tiene un valor comprendido entre 0 y 1. El clasificador perfecto tendrá un AUC de 1.0, mientras que un clasificador que no da ni una tendrá un AUC de 0.0. Proporciona una medida del rendimiento del clasificador bajo todos los límites posibles, mide cómo de bien o mal se realizan las clasificaciones independientemente de la escala y del límite elegido.

Sin embargo, estas ventajas no siempre son convenientes: el AUC también oculta información y no será útil en los casos en los que queremos optimizar un tipo de error de clasificación. Por ejemplo, en nuestra predicción del tiempo nos interesa minimizar los falsos positivos (predicción de sol, preparamos todo para la barbacoa, quedamos en el parque y nos cae la del pulpo) incluso si eso significa aumentar los falsos negativos (día de sol y no hemos hecho barbacoa, otra vez será). El AUC no es útil para este tipo de optimizaciones.

Además, las curvas ROC pueden dar una sensación demasiado optimista del comportamiento del clasificador cuando el conjunto de datos está desbalanceado, cuando tenemos muchos más casos positivos que negativos, por lo que en estos casos suele ser preferible observar la curva PRC.

Conclusión

Todo lo visto hasta ahora nos permite evaluar clasificadores y tener una idea de su rendimiento, y constituye la magia negra detrás de los números que nos ofrece Weka, por ejemplo, al aplicar un clasificador.

Hemos dejado de lado el coeficiente de correlación de Matthews (MCC), pero el resto de medidas de rendimiento deberían estar ahora mucho más claras.

2

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.