My solution for IndabaX Nigeria 2026 Emission Forecasting. LGB + XGB ensemble with a seasonal calibration technique that corrects for unseen winter months in the test set.
# IndabaX Nigeria 2026 Emission Forecasting Solution
Predicting atmospheric emission levels using spatiotemporal feature engineering, ensemble gradient boosting, and seasonal calibration.
---
## Overview
This repository contains my solution for the IndabaX Nigeria 2026 Emission Forecasting competition.
The objective of the competition was to predict emission levels from spatial and temporal environmental data. The challenge involved a difficult temporal distribution shift:
* Training data covered **January–September**
* Test data covered **September–December**
This created a major seasonal extrapolation problem, especially for regions with strong winter emission patterns such as East Asia and South Asia.
The final solution combines:
* Ensemble gradient boosting models
* Extensive spatiotemporal feature engineering
* Region-aware seasonal calibration
---
# Solution Architecture
The final pipeline consists of two stages:
## Stage 1 — Ensemble Model
An ensemble of:
* LightGBM
* XGBoost
trained using:
* 5-fold cross-validation
* log1p-transformed target variable
* extensive feature engineering
This stage generates the raw model predictions:
```text
P_RAW
```
---
## Stage 2 — Seasonal Calibration
Because the model never observed full winter months during training, it systematically under-predicted emissions for October–December.
To correct this:
* region-specific mirror months were used
* Jan–Feb statistics were mapped to Oct–Dec
* predictions were calibrated upward for winter-heavy regions
This stage generates:
```text
P_CAL
```
---
## Final Prediction
The final submission is a weighted blend:
```text
Final Prediction = 0.5 × P_RAW + 0.5 × P_CAL
```
followed by clipping to valid ranges.
---
# Feature Engineering
The solution relies heavily on structured feature engineering(52 new features were created)
## Temporal Features
* Cyclical hour encoding
* Cyclical month encoding
* Day-of-week encoding
* Day-of-year encoding
* Weekend indica …