A machine learning-based API for predicting flight prices using scikit-learn. This project provides a FastAPI application that serves predictions from a trained linear regression model.
This application predicts flight prices based on various features such as:
- Flight class (Economy/Business)
- Flight duration
- Days left until departure
- Source and destination cities
- Airline
- Departure and arrival times
- Number of stops
The prediction model is built using scikit-learn's Linear Regression algorithm and is served through a RESTful API built with FastAPI.
- Python: 3.13+
- FastAPI: Web framework for building APIs
- scikit-learn: Machine learning library for model training and prediction
- Pandas: Data manipulation and analysis
- Joblib: Model serialization and loading
├── app/
│ ├── api/
│ │ └── v1/
│ │ └── prediction.py # API endpoints
│ ├── ml__models/
│ │ ├── flight_price_pipeline.pkl # Trained model
│ │ └── model__loader.py # Model loading utilities
│ ├── schemas/
│ │ └── prediction.py # Request/Response schemas
│ └── services/
│ └── ml_services.py # Prediction service
│ └── main.py # FastAPI application
├── airlineprediction.ipynb # Notebook with model development
├── pyproject.toml # Project dependencies
└── README.md # Project documentation
- Ensure you have Python 3.13 or higher installed
- Clone the repository
- Install dependencies:
pip install -e .uvicorn app.main:app --reloadThe API will be available at http://localhost:8000
Send a POST request to the /api/v1/predict endpoint with the required features:
curl -X POST "http://localhost:8000/api/v1/predict" \
-H "Content-Type: application/json" \
-d '{
"class": 1,
"duration": 2.5,
"days_left": 10,
"destination_city_Chennai": 0,
"destination_city_Delhi": 0,
"destination_city_Hyderabad": 0,
"destination_city_Kolkata": 0,
"destination_city_Mumbai": 1,
"airline_Air_India": 0,
"airline_GO_FIRST": 0,
"airline_Indigo": 1,
"airline_SpiceJet": 0,
"airline_Vistara": 0,
"source_city_Chennai": 0,
"source_city_Delhi": 1,
"source_city_Hyderabad": 0,
"source_city_Kolkata": 0,
"source_city_Mumbai": 0,
"departure_time_Early_Morning": 1,
"departure_time_Evening": 0,
"departure_time_Late_Night": 0,
"departure_time_Morning": 0,
"departure_time_Night": 0,
"arrival_time_Early_Morning": 0,
"arrival_time_Evening": 0,
"arrival_time_Late_Night": 0,
"arrival_time_Morning": 1,
"arrival_time_Night": 0,
"stops_encoded": 0
}'The flight price prediction model is a Linear Regression model trained on flight data with the following features:
- Target Variable: Flight price
- Features:
- Flight class (Economy/Business)
- Flight duration
- Days left until departure
- Source and destination cities (one-hot encoded)
- Airline (one-hot encoded)
- Departure and arrival times (one-hot encoded)
- Number of stops (encoded)
The model is packaged as a scikit-learn pipeline that includes preprocessing steps and the regression model.