Este proyecto es una aplicación web interactiva desarrollada con Streamlit y scikit-learn que predice el número de pasajeros y el factor de ocupación de una ruta de vuelo específica, basándose en datos históricos de aerolíneas de EE. UU.
El modelo entrenado predice el número de pasajeros, y a partir de esta predicción, la aplicación calcula el factor de ocupación y determina si la ruta tendrá una demanda alta (ocupación ≥ 90%).
- Predicción de Pasajeros: Utiliza un modelo de Regresión Lineal para estimar la cantidad de pasajeros esperados.
- Cálculo de Demanda: Determina el factor de ocupación y clasifica la demanda como "Alta" o "Baja" en tiempo real.
- Visualización Histórica: Muestra gráficos interactivos de la evolución de la tarifa promedio y el factor de ocupación para la ruta seleccionada.
- Tecnología: Desarrollado en Python con Streamlit para el frontend interactivo.
| Archivo | Descripción |
|---|---|
app.py |
Código principal de la aplicación Streamlit. Maneja la interfaz de usuario, la carga del modelo y las predicciones. |
entrenamiento.py |
Script para cargar, preprocesar los datos y entrenar el modelo de Regresión Lineal. Genera passengers_model.pkl y route_encodings.pkl. |
US Airline Flight Routes and Fares 1993-2024.csv |
Dataset histórico original (datos de vuelos y tarifas). |
gold_flight_data.csv |
Versión preprocesada y enriquecida del dataset para el entrenamiento. |
requirements.txt |
Lista de librerías de Python necesarias para ejecutar el proyecto. |
route_encodings.pkl |
Archivo de serialización que contiene los Label Encodings de las rutas de vuelo, crucial para la aplicación. |
passengers_model.pkl |
(No incluido) Archivo del modelo entrenado de Regresión Lineal. Se genera al ejecutar entrenamiento.py. |
Este proyecto requiere Python 3.x y las librerías listadas en requirements.txt.
python -m venv venv
source venv/bin/activate # En Linux/macOS
# o
venv\Scripts\activate # En WindowsInstala las dependencias usando el archivo provisto. Nota: Dado que tu código utiliza scikit-learn y altair, la siguiente instalación garantizará que todas las librerías necesarias estén disponibles, asumiendo que el archivo requirements.txt original fue extendido:
pip install streamlit pandas numpy scikit-learn altair
# También puedes usar el archivo que proporcionaste:
# pip install -r requirements.txtDado que no se incluyó el archivo passengers_model.pkl, debes ejecutar el script de entrenamiento para generar los archivos binarios necesarios (passengers_model.pkl y route_encodings.pkl) que la aplicación app.py requiere.
Asegúrate de tener el archivo de datos (US Airline Flight Routes and Fares 1993-2024.csv) en el directorio del proyecto antes de ejecutar:
python entrenamiento.pyAl finalizar, este script guardará el modelo entrenado, y verás un mensaje de confirmación.
Una vez que el modelo ha sido generado, inicia la aplicación Streamlit:
streamlit run app.pyLa aplicación se abrirá automáticamente en tu navegador predeterminado (típicamente en http://localhost:8501). Allí podrás ingresar la ruta de vuelo, el año, el trimestre y la capacidad de la aeronave para obtener predicciones en tiempo real.