- Fecha de la reserva
- Fecha del vuelo
- Antelación (tiempo entre la reserva y el vuelo)
- Número de pasajeros
- Número de adultos
- Número de niños
- Origen del viaje
- Destino del viaje
- Clase (turista o business)
- Peticiones especiales (equipaje, tipo de comida, mascotas, niños de pecho, traslado desde el aeropuerto, etc…)
- Número de peticiones especiales
- Precio de la reserva
Regresión Logística
En el primer caso, la regresión logística, el algoritmo de entrenamiento calcula el peso de las variables (el número por el que hay que multiplicar cada variable para otorgarle fuerza en el modelo). Para explicarlo de forma sencilla, sirve este ejemplo: imaginemos que la antelación condiciona mucho si una reserva se va a cancelar o no. A más días de antelación, más probabilidad de cancelar. El algoritmo entonces encontrará un número positivo por el que multiplicar antelación. Si por el contrario, el número de niños también tiene peso, pero a más niños menos probabilidad de cancelar, el algoritmo encontrará un número negativo para multiplicar el número de niños. Mientras más dependa la variable respuesta de la variable predictora, mayor será el valor absoluto del número por el que se multiplica la variable predictora en cuestión. Si los pesos encontrados por el algoritmo son, por ejemplo 2,6 para antelación y -1,9 para el número de niños, la probabilidad de cancelación dependerá de la siguiente expresión de base: 2,6 * antelación – 1,9 * número de niños Esta “expresión de base” dibuja una línea que separa las clases:Árboles de Decisión y Random Forest
¿Qué es Random Forest?
Random Forest es una ampliación del concepto de árboles de decisión. El principio es exactamente el mismo. La diferencia radica en que en este caso, se cogen muestras aleatorias del conjunto de datos de entrenamiento, y se entrenan varios árboles de decisión seleccionando también aleatoriamente las variables predictoras. Los resultados de cada uno de los árboles generados se ponderan, y la observación se asigna a la clase más votada. La ventaja de este modelo es que suele tener mejores resultados que un árbol de decisión simple. La desventaja es que perdemos interpretabilidad. Ya no podemos dibujar el árbol (pero sí determinar la importancia de las variables).Support Vector Machines (SVM)
En este caso el concepto de separación de las clases en el espacio se lleva al límite, por decirlo de alguna manera. Aquí no hay pesos como la regresión logística, ni valores a partir de los cuales se separa una clase, como en los árboles de decisión. Simplemente, se trata de encontrar la línea, el plano o el hiperplano que mejor separa las clases, maximizando el margen que hay entre una clase y otra. La ventaja de estos modelos es que, si es necesario, son capaces de clasificar las observaciones aun cuando su separación no es lineal o plana. Para ello, usan un truco que supone añadir dimensiones a los datos. Vamos a explicarlo de forma intuitiva, y de nuevo con la ayuda de ejemplos de hasta dos dimensiones, para poder dibujarlo (la base de este ejemplo la he obtenido del material de un curso de Machine Learning del MIT, que recomiendo a todos los que quieran empezar a recorrer este camino). Supongamos que estamos trabajando en una sola dimensión (solo tenemos el dato de antelación). Si los puntos azules pertenecen a una clase, y los rojos a otra, no existe ninguna línea capaz de separar ambas clases:Un inciso sobre support vector machines
Por si no lo hemos aclarado, cuando hablamos de dimensiones simplemente hablamos del número de variables predictoras. El espacio que generan, por ejemplo, antelación y número de niños tiene dos dimensiones (es bidimensional)… Es decir, lo que vemos en el colegio cuando hacemos gráficas cartesianas. Si añadimos una variable más, por ejemplo, el precio total de la reserva, estamos operando en tres dimensiones (ya es más difícil de graficar).K-Nearest Neighbors (KNN)
Para terminar el repaso de los principales modelos de clasificación, veremos brevemente cómo operan los algoritmos basados en la vecindad o la similaridad de las observaciones. ¿Qué es K-Nearest Neighbors? KNN es un modelo que calcula la distancia entre todas observaciones, y asigna las clases según los vecinos más cercanos. Es importante aclarar que existen otros tipos de modelos, pero con lo visto hasta ahora creemos que ya es suficiente como para tener una idea global, y sirve para demostrar que se pueden adoptar varios enfoques distintos para solucionar la misma clase de problemas. Muy frecuentemente, no sabemos exactamente qué modelo será el que mejor funcione con los datos disponibles, por lo que tener varias alternativas es una ventaja indiscutible.Criterios de evaluación de modelos
Hemos repasado hasta ahora varios modelos de clasificación, usando como ejemplo la cancelación de reservas. No podemos terminar sin explicar cómo se evalúan los modelos, es decir, cómo se determina si se desempeñan bien o mal con respecto al problema que estamos tratando, y cuál de todos da los mejores resultados. Para esto, se usa una matriz de confusión. Una matriz de confusión nos muestra los resultados del modelo de la siguiente manera:Siempre hay que sacrificar una cosa u otra. Un modelo con alta precisión sacrifica sensibilidad (recall), y un modelo con alta sensibilidad sacrifica precisión.
Dependiendo de la naturaleza del problema, nos puede interesar que el modelo sea preciso (la mayoría de lo que se predice como positivo es realmente positivo, aunque se nos escapen algunos positivos), o que sea sensible (el modelo es capaz de clasificar como positivo la mayoría de los casos que son realmente positivos), aunque eso suponga tener más falsos positivos.
Todo depende del “coste del error”. En los casos en los que un falso positivo tiene menos coste que un falso negativo, entonces tenemos que potenciar la sensibilidad del modelo (recall).
En los casos en los que un falso positivo tiene más coste que un falso negativo, entonces tenemos que potenciar la precisión del modelo.
F1 – score: cuando el coste del error es equivalente, entonces debemos desarrollar un modelo balanceado. En ese caso, la métrica más adecuada es F1 – score (la media armónica entre recall y precisión). Mientras mayor sea el F1 – score, mejor.
Accuracy: es el porcentaje de observaciones que se han clasificado correctamente.
TP + TN / (TP + TN + FP + FN)
Es una métrica afectada por el balance de las observaciones. Por ejemplo, si la clase positiva es el 10%, un modelo que predice siempre la clase negativa tendría un accuracy del 90%, pero sería un modelo inútil. Accuracy solo es una buena medida del desempeño de un modelo de clasificación cuando las clases tienen tamaños comparables.