This repository contains the source code for our best XGBoost model, achieving a LB of 0.52795 and PB of 0.53552.
- Python Version: 3.11
- Memory: Running the full training pipeline (loading the dataset and feature engineering) requires approximately 400 GB of RAM
- GPU: Recommended for accelerating XGBoost model training
├── extract.ipynb # Extract additional information from raw JSON files
├── flight.ipynb # Main notebook
├── requirements.txt # Python dependencies
├── run.sh # Script to run notebook in the background
└── src
├── __init__.py
├── data.py # Data splitting
├── feature.py # Feature engineering and selection
├── feature_specs.py # Feature specifications used in the model
├── params.py # Model hyperparameters
├── plot.py # Visualization functions
└── utils.py # Utility functions: evaluation, reranking, prediction- Download the data from Kaggle Aeroclub RecSys 2025 Data and place it in the
./data/directory. Follow the instructions to unzipjsons_raw.tar.kaggle. - Create a Conda environment and install the required packages from
requirements.txt:conda create -n FlightRank python=3.11 conda activate FlightRank pip install -r requirements.txt
- Run
extract.ipynbto extract additional information from the raw JSON files. - Configure
flight.ipynb:FULL = True— train on the full training dataset.FULL = False— train on 90% of the training data for local validation.
- Optionally, adjust the training-validation split sizes in
utils.py:TRAIN_VAL_SIZE— size of the training-validation split.TRAIN_ALL_SIZE— size of the dataset when modifying the training set.
- To add more features, modify or add functions in
feature.pyand include them in thefeature_engineeringworkflow. - For feature selection, update the
FeatureSpecclass infeature_specs.pyby adding or removing features as needed. - To use a trained model for predictions, go to the "Model Training" cell in
flight.ipynb, uncomment the code that loads the model, and comment out the code that performs training.