🛫 Predicción de Precios de Vuelos en India 🛬
En este proyecto se realiza un completo proceso de análisis de datos, abarcando lógicamente desde una buena limpieza de datos, hasta un buen análisis exploratorio, para finalmente crear un modelo de machine learning con el que se puedan hacer predicciones de lo que costarán unos tiquetes de vuelo según las características del mismo.
El proyecto implementa en realidad tres modelos diferentes: RandomForest, XGBoost y CatBoost, y compara el desempeño de los mismos además de hacer una ligera optimización de hiperparámetros.
Como objetivo final se elige el modelo que mejor desempeño haya demostrado y se implementa una predicción con un pequeño set de datos no-conocidos por el modelo, lo cuales son luego validados para verificar que sean razonables de acuerdo a las características de los datos de entrada, y se comprueban comparándolos con datos históricos similares.
🧩 Características
- Limpieza de datos
- Análisis exploratorio de datos (EDA)
- Visualización de datos
- Ingeniería de características
- Modelos de Machine Learning: RandomForest, XGBoost, CatBoost
- Optimización de hiperparámetros
- Predicciones y validación
⁉️ Variables Analizadas
- Aerolínea
- Origen y destino
- Fecha y hora del vuelo
- Clase (Economy/Business)
- Número de escalas
- Duración del vuelo en minutos
🤯 Tecnologías Utilizadas
- Python 3.13
- Pandas
- NumPy
- Scikit-learn
- XGBoost
- CatBoost
- Matplotlib
- Seaborn
📚 Estructura del Proyecto
- Definición del problema
- Importación de Librerías y Carga de Datos
- Reporte de calidad de los datos
- Análisis exploratorio de los datos
- Análisis de correlaciones
- Transformaciones necesarias
- Elección y creación de modelos
- Métricas de evaluación
- Optimización con Grilla de hiperparametros
- Ejemplo de Predicción de Precios
- Conclusión Final
📊 Algunas Visualizaciones
Información del Proyecto
- Categorías: Análisis de Datos | Machine Learning
- Herramientas: Python Pandas Seaborn Scikit-Learn
- Fecha del Proyecto: Agosto, 2025
- URL del Proyecto: https://github.com/CarlosACalvo/Prediccion_Precios_Vuelo
🏅 Comparación de Modelos
| Modelo | MSE | R² | MAE |
|---|---|---|---|
| Random Forest | 1.30e+07 | 0.975 | 2,200.99 |
| XGBoost | 1.69e+07 | 0.967 | 2,733.70 |
| CatBoost | 9.86e+06 | 0.981 | 1,788.83 |
El modelo CatBoost obtuvo el mejor desempeño con:
- El menor Error Cuadrático Medio (MSE): 9.86e+06
- El mayor coeficiente de determinación (R²): 0.981
- El menor Error Absoluto Medio (MAE): 1,788.83
🧙🏻♂️ Ejemplos de predicciones
| Ruta | Aerolínea | Clase | Precio Predicho |
|---|---|---|---|
| Delhi_Mumbai | Vistara | Business | ₹30,558.62 |
| Mumbai_Kolkata | Air India | Economy | ₹4,464.27 |
| Kolkata_Delhi | SpiceJet | Economy | ₹5,988.87 |
💵 Análisis de la razonabilidad de los precios predichos
🛫 Validando vuelo: Delhi_Mumbai - Vistara - Business - Mañana - ₹30558.62
- Precio mínimo histórico: ₹7,153.00
- Precio máximo histórico: ₹90,281.00
- Precio promedio histórico: ₹48,902.89
🛫 Validando vuelo: Mumbai_Kolkata - Air India - Economy - Tarde - ₹4464.27
- Precio mínimo histórico: ₹4,457.00
- Precio máximo histórico: ₹21,273.00
- Precio promedio histórico: ₹7,573.19
🛫 Validando vuelo: Kolkata_Delhi - SpiceJet - Economy - Noche - ₹5988.87
- Precio mínimo histórico: ₹3,999.00
- Precio máximo histórico: ₹22,327.00
- Precio promedio histórico: ₹6,086.34
➡️Se concluye que todos los precios predichos son razonables, ya que está dentro del rango histórico y son menores que el precio promedio, lo cual es esperado para un vuelo con estas características. ✅