Skip to the content.

Guía de Métricas y Errores

Repaso teórico

Llamamos “métrica” a toda forma de medir que tan bien le va a un modelo. Un “error” o “pérdida” u “objetivo” es una métrica que se usa para entrenar los parámetros de un modelo.

Vimos 4 métricas de clasificación importantes:

Además vimos 2 de regresión:

Accuracy

\[\textit{accuracy} = \frac{\textit{#correctos}}{\textit{#total}}\]

Precisión

La precisión para una clase es: \(\textit{precision}_{\textit{clase}} = \frac{\textit{#predichos correctos de la clase}}{\textit{#predichos para la clase}}\)

Recall

El recall para una clase es: \(\textit{recall}_{\textit{clase}} = \frac{\textit{#recuperados de la clase}}{\textit{#miembros de la clase}}\)

AUC-ROC

Es la probabilidad de que dados dos puntos de la clase 0 y 1 cualesquiera, sus probabilidad estén bien ordenadas.

MAE

\[\sum_{i=1}^{N}\frac{|x_i-y_i|}{N}\]

MSE

\[\sum_{i=1}^{N}\frac{(x_i-y_i)^2}{N}\]

El MSE es más sensible que el MAE a errores grandes.

Ejercicio 1

Dadas las labels [0,1,0,1,1] y las predicciones [0.1, 0.3, 0.4, 0.99, 0.6]. ¿Con qué cortes la accuracy es \(\frac{4}{5}\)?

Ejercicio 2

Dadas las labels [0,1,0,1,1] y las predicciones [\(x\), 0.3, 0.6, \(x\), 0.7]. ¿Para cúales de los siguientes valores de \(x\) la precisión de la clase 1 es \(\frac{1}{2}\) teniendo en cuenta que el corte es 0.5?

Ejercicio 3

¿Cúal de las siguientes afirmaciones sobre AUC-ROC es correcta?

Ejercicio 4

Calcular el AUC-ROC para las labels [1,0,1,0,1] y las predicciones [0.3, 0.1, 0.7, 0.4, 0.9].

Ejercicio 5

Calcular el MSE para el target [2000, 6000, 1000, 100] y predicciones [1700, 4000, 900, 0].

Ejercicio 6

Tenemos un dataframe representando precios de pasajes de diferentes líneas aéreas. Las columnas del dataframe son:

Queremos construir un modelo predictivo que nos permita predecir el precio en base a las otras variables. Se decide usar un algoritmo basado en Gradient-Boosting para la construcción del modelo. ¿Qué métrica usaria para evaluar el modelo?

Respuestas

Ejercicio 1

Si el corte es 0.2 las predicciones son [0, 1, 1, 1, 1] con accuracy 4/5.

Si el corte es 0.5 las predicciones son [0, 0, 0, 1, 1] con accuracy tambien 4/5.

Los otros dos cortes no logran accuracy 4/5.

Ejercicio 2

Si elegimos \(x > 0.5\) las predicciones quedan [1, 0, 1, 1, 1] lo que hace que la mitad de los puntos clasificados como 1s estén mal, por lo tanto dando precisión de \(\frac{1}{2}\).

Por otro lado, si elegimos \(x < 0.5\) las predicciones dan [0, 0, 1, 0, 1] donde de nuevo la precisión de la clase 1 es \(\frac{1}{2}\).

Todas las respuestas son correctas.

Ejercicio 3

Si el AUC-ROC es 0 entonces tus probabilidades están todas al revés, por lo que hacer 1 - tu predicción es un predictor perfecto. En terminos de valor predictivo este modelo es igual de bueno que uno con AUC-ROC de 1.

Por otro lado si el AUC-ROC es 0.5, todas tus probabilidades están ordendas de forma aleatoria y es lo mismo que tirar una moneda para decidir, no tiene ningún valor predictivo. Esto es cierto no importa el balance de clases en el dataset.

AUC-ROC es una métrica complementaria de otras, no es necesariamente la mejor y funciona mal en datasets fuertemente desbalanceados.

Resumiendo solo las segunda y tercera opción son correctas.

Ejercicio 4

0.83333…

Ejercicio 5

1027500

Ejercicio 6

Se puede usar o bien MAE o MSE ya que son métricas de regresión. ¿Cuál es la más adecuada para el negocio?