Trabajo Práctico para la materia Organización de Datos (95.58)
Nombre | Github |
---|---|
Sebastián Brizuela | SebaB29 |
Lucia Agha Zadeh Dehdeh | Lucia-azd |
Juan Sebastián Del Río | S2JuanS2 |
Competencia de Kaggle que consiste en obtener una predicción sobre si una reserva de hotel será cancelada o no.
Se realizó un análisis exploratorio de los datos de muestra (CHP1) utilizando herramientas proporcionadas por las librerías: Pandas, Matplotlib, Seaborn, Numpy y Scipy, además de un archivo con información sobre los datos proporcionado por la Cátedra.
Se exploraron distintos modelos predictivos para practicar su utilización:
- DecisionTreeClassifier
- RandomForestClassifier
- KNeighborsClassifier
- SVC
- XGB
- VotingClassifier
- StackingClassifier
- Redes Neuronales
Los conjuntos de datos a utilizar, hotels_train y hotels_test, se encuentran disponibles en la competencia de Kaggle y deberán descargarlos desde allí. Allí mismo encontrarán un archivo de ejemplo de cómo se deben subir las soluciones. Se deberán explorar los datos de train, realizar ingeniería de características y entrenar modelos de clasificación para poder predecir si una reserva será cancelada: el target será la variable is_canceled. Las tareas de preprocesamiento deberán replicarse en los datos de test, ya que será necesario obtener las predicciones sobre el conjunto de evaluación y subirlas a Kaggle.
-
Análisis Exploratorio y Preprocesamiento de Datos
- Exploración Inicial
- Visualización de los datos
- Análisis de Datos Faltantes
- Detección de Valores Atípicos
-
Clasificación - Entrenamiento y Predicción
- Árbol de decisión
- Modelos de ensamble (KNN, SVC, RF, XGBoost)
- Redes Neuronales
Se realizó un análisis exploratorio sobre un dataset de reservas de hoteles, que tiene 31 columnas y 61,913 filas. A través de análisis y visualizaciones, se determinaron las variables relevantes. Luego se pasó al preprocesamiento de datos, donde se detectaron columnas con datos faltantes y outliers, a los cuales se les aplicó su correspondiente tratamiento. Se exploraron distintos modelos de clasificación en la búsqueda de mejores métricas para predecir si la reserva fue cancelada o no.
CHP | Modelo | F1 Score | Precision Test | Recall Test | Accuracy | Kaggle |
---|---|---|---|---|---|---|
2 | Árbol | 0.85184 | 0.84518 | 0.83861 | 0.84570 | 0.84082 |
3 | Stacking (Mejor) | 0.86116 | 0.86498 | 0.86884 | 0.86379 | 0.86193 |
4 | Red Neuronal | 0.82974 | 0.76997 | 0.89957 | 0.81459 | 0.80829 |
A partir del análisis exploratorio realizado en el dataset de reservas de hoteles, se han obtenido diversas conclusiones. En primer lugar, se realizó un análisis de los datos que incluyó un preprocesamiento que aportó una buena base para obtener buenas predicciones, incluyendo la gestión de datos faltantes y la identificación y tratamiento de valores atípicos.
- En términos de simplicidad y velocidad de entrenamiento, XGBoost se destacó como el modelo más sencillo y rápido de entrenar, obteniendo el segundo mejor resultado en Kaggle.
- El modelo Stacking demostró ser el más efectivo en la competencia de Kaggle.
En resumen, el análisis exploratorio y las decisiones tomadas en el preprocesamiento fueron fundamentales para mejorar las predicciones de los modelos. Aunque consideramos que nuestros modelos son buenos para ser los primeros que realizamos, es importante seguir explorando y experimentando con diferentes enfoques para lograr mejoras en la performance predictiva de nuestros modelos.
Este proyecto está bajo la licencia MIT. Para más detalles, consulta el archivo LICENSE.