En junio de 2020 me encontré con este artículo de Manuel Banza, analista de negocios en NOS SGPS que me llamó mucho la atención.
No se trata de un artículo sencillo de entender y menos si no está escrito en la lengua materna de uno y es por ello que decidí dedicarle tiempo a analizar y traducir punto por punto. Hoy quiero compartirlo, ya que pienso que puede ayudar a muchas personas. Quien decida seguir adelante con su lectura debe saber que requiere tiempo y dedicación.
Yo mismo confieso que hay cosas que no alcanzo a entender al no dominar algunas de las herramientas que se utilizan para el desarrollo de este artículo, pero creo que he conseguido transmitir su esencia.
No lo he compartido hasta hoy, casi un año después, porque ahora mismo el mayor problema de los hoteleros no son las cancelaciones, sino conseguir reservas (de hecho a día de hoy raro es el hotel que trabaje solo con tarifas no reembolsables), pero considero que el aprendizaje que se puede obtener de este contenido es independiente de las circunstancias del momento en el que vivimos.
Problema de negocio
Las cancelaciones de reservas son sin duda uno de los mayores dolores de cabeza de cualquier gestor de ingresos o gerente de hotel. Si examinamos los datos disponibles del mercado europeo, vemos que en 2018 se cancelaron el 49,8% de las reservas reservadas en Booking.com:
En el gráfico anterior podemos ver claramente que esta es una tendencia creciente y genera un mayor problema cuando se trata de entender cuántas habitaciones debe vender un hotel y qué técnicas de overbooking debe aplicar.
Las OTAs están animando a los clientes a cancelar cuando te animan activamente a reservar ahora y cancelar más tarde, de forma gratuita, cuando quieras. Esto da como resultado que los clientes reserven más de un hotel y decidan más tarde cuál elegirán. Ejemplos del impacto de las cancelaciones en un hotel:
- Pérdida de ingresos cuando no pueden revender la habitación
- Costos adicionales de los canales de distribución mediante el aumento de comisiones o el pago de publicidad para ayudar a vender estas habitaciones
- Bajar los precios a última hora, para que puedan revender una habitación, lo que resulta en la reducción del margen de beneficio
Entonces, ¿qué pueden hacer los hoteles para reducir esta incertidumbre y maximizar sus productos e ingresos? Se puede hacer mucho con técnicas de gestión de ingresos cuando se trata de restricciones de tarifas, como aumentar el número de días hasta la fecha de llegada que el cliente puede cancelar sin costo, dándole más tiempo para revender la habitación. Pero hoy en día, tienes que aplicar restricciones similares a las aplicadas por tu conjunto competitivo y hoteles a tu alrededor, así que si vas a ser más estricto, los clientes preferirán otros hoteles que sean más permisivos.
Por lo tanto, parece que tenemos un problema complejo y no una solución viable. Sin embargo, gracias a la ciencia de datos y el aprendizaje automático o machine learning hay muchas cosas que podemos hacer para predecir con precisión qué reservas individuales y específicas se van a cancelar.
En los próximos capítulos voy a tomar un conjunto de datos público de reservas de hotel y aplicar un AED (Exploratory Data Analysis) para entender los datos y utilizar técnicas de análisis descriptivas para obtener una imagen completa de su comportamiento. A continuación, veremos cómo podemos usar el aprendizaje automático y seleccionar los mejores modelos para nuestros datos.
Y por último, pero no menos importante, analizaremos los resultados del modelo y lo aplicaremos a los datos no vistos (datos no utilizados para entrenar el modelo) para que podamos verificar lo bueno que es nuestro modelo.
Todo el trabajo realizado a continuación se hizo en Python utilizando Jupyter Notebook y solo bibliotecas de código abierto.
Dataset
Nuestro conjunto de datos está disponible en Kaggle en el enlace anterior. Echemos un vistazo a la descripción:
Contenido
Este conjunto de datos contiene datos para un hotel de la ciudad y un hotel resort e incluye información como el momento de la reserva, la duración de la estancia, el número de adultos, niños y/o bebés, y el número de plazas de aparcamiento disponibles, entre otras cosas.
Toda la información de identificación personal se ha eliminado de los datos.
Agradecimientos
Los datos provienen del artículo Conjuntos de datos de demanda de reservas de hoteles, escrito por Nuno Antonio, Ana Almeida y Luis Nunes para Data in Brief, Volumen 22, febrero de 2019.
EDA – Análisis de datos exploratorios
Lo primero que queremos ver es la distribución de reservas canceladas y no canceladas. En la imagen de abajo podemos ver que tenemos datos de un resort hotel y un hotel de ciudad. En el eje x vemos el 0 y 1 que representa check-in y cancelled, respectivamente. Lo primero que concluimos es que hay más cancelaciones en el hotel de ciudad.
A continuación, trazamos estos datos a través del tiempo para ver si encontramos algunas tendencias:
Podemos ver que hay algo de estacionalidad durante los años, lo que es normal en hospitalidad, especialmente en resort hotel, que consiguen más reservas en el verano.
También la relación de cancelaciones es mayor en primavera y verano y tienen una proporción más baja en el invierno. Así que claramente podemos protagonizar algunos patrones. Echemos un vistazo a los segmentos de mercado y su distribución para las reservas de check-in y canceladas:
La mayoría de las reservas registradas son de mercados online y lo mismo ocurre con las cancelados. Lo interesante es ver que los grupos son el segundo segmento de mercado que tiene el mayor número de cancelaciones, pero solo el cuarto en el ranking de los checked in.
Normalmente, en el segmento de grupos de hospitalidad tienen 3 (a veces 4 si cuenta la consulta) tipos de estado: tentativo, pendiente y definitivo. Así que sería interesante ver si las reservas provisionales cuentan para las cancelaciones. Dado que los grupos normalmente tienen lavado (cuando la empresa reduce el número inicial de habitaciones solicitadas) se espera que el segmento obtenga el segundo lugar cuando se trata de reservar cancelaciones.
Lead time
El lead time es una de las métricas más importantes a la hora de analizar el rendimiento de los ingresos del hotel, por lo que sentí que tenía que trazar diferentes visualizaciones para obtener una buena imagen de la misma. Una gran cantidad de otras visualizaciones también sería bueno analizar.
Los dos últimos podemos ver que cuanto más largo sea el plazo de entrega, mayor será la probabilidad de la reserva se cancelaría. En la última gráfica podemos ver una correlación entre el plazo de entrega y la relación de cancelaciones.
ADR
ADR es la única variable relacionada con los ingresos de este conjunto de datos. Cuando se trata de ello, siempre encuentro que las tramas de caja son la manera perfecta de entender el comportamiento ADR.
La media se representa en la línea horizontal discontinua de cada segmento, y la mediana por la línea horizontal no discontinua. es decir: La media (promedio) y la mediana de Direct son 115 y 105 respectivamente.
- El TA/TO corporativo, aviación y offline tienen la variación más baja de los precios y suele ser porque estos segmentos tienen contratos con precios planos y no son rentables como otros segmentos
- TA directa y online son los segmentos de mercado con precios más altos y variación más alta, mostrando bien cómo la yield Revenue management es buena.
En las principales nacionalidades sólo encontramos países europeos y todos de Europa del Sur o Central. Portugal lidera la carrera de reservas tanto en los tipos de clientes Transient como Transient-Party.
Presentación de la puntuación de predicción de potencia o Predictive Power Score (PPS)
Predict Power Score es una gran manera de ver las correlaciones entre nuestras variables, no sólo las numéricas, sino también las categóricas. Algunos son bastante obvios como las características que indica el status de la reservación y que indica si la reserva ha sido cancelada. Para obtener más información, consulte este artículo de Florian Wetschoreck llamado correlación RIP. Presentamos la Predictive Power Score.
Estos son algunos hallazgos que ayudan a entender mejor nuestro conjunto de datos:
- Segmento de mercado y canal de distribución se ven afectados principalmente por la característica de agente. Esto ayuda a entender que estos hoteles tienen diferentes agentes cuando se trata de segmentos específicos de clientes. Por ejemplo, Booking.com es un agente que solo está representado en el segmento de mercado online.
- El tipo de cliente está más influenciado por la empresa. Lo cual es similar al punto anterior
- “Is-repeated” también está influenciado por la empresa de la que proviene el cliente. Esto puede verse afectado por los segmentos corporativos y de aviación
Modelado
Ahora que tenemos nuestro análisis descriptivo es el momento de crear un modelo para predecir cancelaciones.
Lo primero es entender el problema que tenemos. En el campo de la ciencia de datos esto se conoce como problema de clasificación supervisada, ya que queremos predecir si una reserva se cancela o no, en otras palabras, es una predicción binaria.
Limpieza de datos
Lo primero que hay que hacer es comprobar si tenemos valores que faltan, entonces tendremos que reemplazar esos valores que faltan con la media de esa entidad si esa variable es numérica o la constante si es una característica categórica.
En este conjunto de datos tenemos los siguientes valores que faltan:
Entonces tendremos que eliminar la columna reservation_status debido a que es posible fuente de fugas y sobreajuste.
Selección de los mejores modelos
Antes de empezar a probar los mejores algoritmos para nuestros datos, dividiremos nuestro conjunto de datos en un 80%-20%. Esto ayudará a utilizar el 80% de nuestros datos para entrenar un modelo, y dejar el 20% de los datos invisibles para probar nuestro modelo entrenado. Esto tiene que hacerse, porque si usamos todos nuestros datos el modelo lo memorizará y esto resultará en predicciones de sobreajuste. Luego seleccionamos nuestro objetivo en este caso es la característica is_canceled.
Para entender qué modelos eran los más adecuados para nuestro conjunto de datos, tuve que ejecutar una serie de tareas para limpiar y ajustar los modelos, sin embargo, para el propósito de este artículo sólo le mostraré los resultados para el modelo que tuvo los mejores resultados de predicción.
El modelo con los mejores resultados fue el CatBoost:
Como se puede ver en la imagen, este ya es un buen modelo ya que muestra grandes resultados para Precisión, Precisión, Curva AUC y Recuperación. Para comprender mejor estas métricas, visite este gran artículo Precisión, Precisión, Recuperación o F1?.
¿Qué es CatBoost?
CatBoost se basa en árboles de decisión potenciados por gradiente. Durante el entrenamiento, un conjunto de árboles de decisión se construye consecutivamente. Cada árbol sucesivo se construye con pérdida reducida en comparación con los árboles anteriores.
Funciona muy bien con datos heterogéneos y con datos pequeños. Echa un vistazo a este video de 3 minutos explicándolo:
Interpretación del modelo
Para interpretar este modelo usaré la biblioteca SHAP.
Este gráfico es una gran herramienta para entender qué características son las más importantes para el modelo con el fin de predecir nuestra reserva.
Así que lo que hace es seleccionar las características que son más importantes (en este ejemplo comienza en el país siendo portugués y termina e stays_in_week_nights) y comparar su relevancia en una clase que es 0 o 1. Recuerde que la clase 0 equivale a una reserva de reserva que no se cancela y clase 1 significa que se cancelará una reserva. Rojo significa que tiene un alto impacto y azul un bajo impacto. Teniendo esto en cuenta, veamos algunos hallazgos sobre nuestro conjunto de datos y el modelo CatBoost:
- Si el país de una Reserva es PRT (Portugal) tiene una alta probabilidad de ser cancelado. Sin embargo, en este caso tenemos que tener precaución, como vimos anteriormente el segundo segmento de mercado con más cancelaciones eran Grupos, normalmente no tenemos acceso a la nacionalidad de la persona hasta que se registra, por lo que la mayoría de los hoteles ponen por defecto la nacionalidad del país de ese hotel. En la descripción del conjunto de datos que vemos en el artículo original en el que se publicó este conjunto de datos los datos del hotel se forman Algarve en Portugal, por lo que este puede ser el caso de que la nacionalidad de todos los grupos se inserte como PRT.
- Cuando un cliente no hace ninguna solicitud especial, mayor será la probabilidad de que el cliente cancele, en comparación con aquellos que hacen al menos una solicitud especial
- Cuanto menor sea el valor lead_time, menor será la probabilidad de que se cancele la reserva. Esto era algo que ya sabíamos del Análisis de Datos Exploratorios que hicimos
La misma lógica se puede aplicar a las otras características representadas en el gráfico siguiendo la misma lógica que la anterior.
Predecir en prueba / muestra
Ahora que tenemos nuestro modelo y lo interpretamos, vamos a usarlo para predecir el 20% que dejamos al comienzo del proceso de modelado:
Como se puede ver los resultados siguen siendo buenos. Vamos a calcular los resultados del modelo si se cuenta para todo el conjunto de datos:
Este flujo de trabajo le ayudará a lograr el mejor modelo para su uso en la realización de predicciones sobre datos nuevos y no vistos. El propósito de esta función es entrenar el modelo en el conjunto de datos completo antes de que se implemente en producción.
Finalmente tenemos un modelo que se puede utilizar para futuras reservas, y calibrado y mejorado con más datos en el futuro, ya que sólo utilizamos 2 años de datos para este modelo
Conclusiones
Las reservas canceladas son un verdadero gran dolor de cabeza para los hoteles, y son una de las razones por las que muchos hoteles pierden ingresos y beneficios. Como todos vimos sitios web de reservas en línea están animando a más y más clientes a reservar más hoteles y luego decidir cuál se quedarán, participando en el aumento del número de cancelaciones que todos vimos en los últimos años.
En este artículo vimos que podemos predecir reservas que se cancelarán con una confianza de:
- Precisión – 90%
- Precisión – 88%
- Recall – 84%
Con esta información, los hoteles pueden, por ejemplo, ponerse en contacto con los clientes que el modelo predicho cancelará para obtener una cancelación antes, para que puedan tener más tiempo para revender la habitación. O tal vez acercarse al cliente de una manera para hacerle sentir especial y mantener su reserva y por lo tanto cancelar los otros que había hecho en otros hoteles de la misma ciudad.
Actualmente estamos viendo cambios en el comportamiento del cliente debido a la pandemia COVID-19, sin embargo es demasiado pronto para hacer predicciones, ya vimos que los hoteles están bajando la ventana de días que un cliente puede cancelar, como una forma de animarlos a reservar más.
Por lo tanto, si era importante gestionar y predecir cancelaciones antes de la pandemia, es aún más importante en los días futuros que la industria tiene en su camino.
Todos sabemos la importancia de la gestión de datos e ingresos en la industria hotelera, pero también vimos la importancia que tiene la ciencia de datos para maximizar el producto, la distribución y el beneficio de un hotel.
Así que ahora es el momento perfecto para que la industria comience a invertir en esta área y particularmente en el aprendizaje automático, ya que las ventajas son enormes en todos los campos de la hospitalidad.
No solo en la predicción de cancelaciones, sino también en el análisis de regresión para pronosticar ingresos y costos, agrupa a sus clientes en comportamientos similares para campañas de marketing o muchas otras técnicas.
Espero que hayan disfrutado de este artículo y proyecto y que le resulte útil de cualquier manera. Por favor, siéntase libre de comentar, hacer preguntas o compartirlo con sus amigos y colegas.
Imágenes cedidas: Thought Catalog on Unsplash