An end-to-end machine learning pipeline to forecast daily store sales using historical data, promotions, store info, and calendar features. Built for the Zindi Africa beginner competition, the project covers data prep, feature engineering, LightGBM training, and submission generation.
# Store Sales Forecasting — Zindi Hackathon Project
## Overview
This project is part of the Store Sales Forecasting Challenge for Beginners hosted on Zindi Africa. The goal is to predict daily sales for different product categories across multiple stores using historical transaction data and related features.
I am building this project end-to-end, including:
- Data cleaning and merging
- Feature engineering (lags, rolling means, holidays, etc.)
- Model training using LightGBM
- Prediction generation and submission file creation
---
## Setup Instructions
Make sure you have Python 3.7+ installed. Install required libraries with:
```bash
pip install pandas numpy scikit-learn lightgbm joblib
```
---
## Dataset Files
| **File** | **Description** | **Size** |
|------------------------|-----------------------------------------------------------------------------------------------------|--------------|
| `test.csv` | Resembles `train.csv` but **without** the target column. This is the dataset for model prediction. | 2.6 MB |
| `holidays.csv` | Contains **holiday information** used to flag special dates. | 1.8 KB |
| `stores.csv` | Contains details about **store locations, types, and clusters**. | 864 B |
| `dates.csv` | Provides **calendar-based features** like day of week, day of year, etc. | 79.8 KB |
| `SampleSubmission.csv` | Shows the **expected submission format** including the `ID` column layout. | 508.6 KB |
| `train.csv` | Main training dataset that **contains the target** sales values for model training. | 83.6 MB |
---
## Project Structure
This project is organized into four main components:
| **Part** | ** …