Predicción de cancelación de reservas en el sector del Turismo (2/3)

by Gerard Reig

En la primera parte de esta serie de artículos presentábamos la evaluación de un modelo de clasificación basado en Machine Learning que predice cuándo se va a cancelar una reserva hotelera. En esta segunda parte, vamos a analizar con más profundidad los indicadores de calidad del modelo y buscaremos los factores que influyen en sus valores.

Precision y Recall

Para entender qué son estas métricas recurriremos a un ejemplo práctico. Imaginemos que evaluamos el rendimiento de un modelo con un conjunto de 8 instancias, en este caso reservas. Para ello contamos con:

  1. El modelo entrenado con el histórico de reservas.
  2.  Un grupo de 8 reservas de las que ya sabemos si se han cancelado o no, con su conjunto de características o features.

Con esa información hacemos 8 predicciones con el modelo entrenado, una por cada reserva, sin decirle al algoritmo, si se han cancelado o no, y posteriormente comparamos con la realidad. Por ejemplo, vamos a calcular el precision y el recall de esta evaluación para las reservas que sí se han cancelado.

reservas - turismo -machine - learning - modelo

Qué es la Precision

Del total de reservas predichas como canceladas, cuántas ha acertado el modelo. Matemáticamente el valor se obtiene dividiendo el número de reservas canceladas predichas correctamente entre el número total de reservas que el modelo ha predicho como canceladas. De la misma forma se puede calcular para las reservas no canceladas.

precision - machine - learning

Qué es el Recall

Del total de reservas que realmente se han cancelado, cuántas de ellas ha detectado el modelo. Matemáticamente el valor se obtiene dividiendo el número de reservas canceladas predichas correctamente entre el número total de reservas que realmente se han cancelado. De nuevo, este indicador se puede calcular también para las reservas no canceladas.

recall - machine - learning

Una vez aclarados los conceptos, analizamos de nuevo los resultados de la evaluación del modelo predictivo original. Podemos ver que cuando el modelo predice que una reserva se cancelará, acierta el 71.95% de las veces. Sin embargo, sólo encuentra un 31.26% de las reservas que realmente se han cancelado. Ya tenemos localizado el problema, pero ¿cuál es la causa?

Datos balanceados y no balanceados

Un problema que nos encontramos a menudo cuando trabajamos con datos es que estos no están balanceados. Un dataset no balanceado significa que no hay una proporción razonable entre instancias de una clase y otra. Desafortunadamente, esto es lo habitual. Un ejemplo son los datasets utilizados por bancos en la detección de fraude. Estos están compuestos por millones de transacciones “legales”, sin embargo, sólo hay unas escasas de fraudulentas.

Este concepto se aplica en el caso de nuestro cliente. El historial de reservas que utilizamos solo estaba formado por un 13% de reservas canceladas, frente a un 87% no cancelada.

reservas - turismo -machine - learning reservas - turismo -machine - learning

En los datasets no balanceados, dado que hay una clase que abrumadoramente predomina (en nuestro caso las reservas “No canceladas”), existe el riesgo de que el algoritmo tienda a calificar las instancias como la clase predominante. Desde el punto de vista del algoritmo es lógico ya que, en el extremo, si responde siempre que una reserva no se cancelará, acertará mayoritariamente en un 87% de las ocasiones y el indicador de “accuracy” en general será bueno.

En el último artículo de esta serie explicamos qué estrategias podemos poner en marcha para solucionar el problema de los datos no balanceados.