Data science project
# UNICEF Malawi – Childhood Depression Prediction
A machine learning project built for **MATH 11205: Machine Learning in Python**.
We use the UNICEF Multiple Indicator Cluster Survey (MICS) collected in Malawi (2019–2020) to build a classification model that predicts whether a child experiences depressive feelings, and to identify the key factors associated with childhood depression.
---
## Project Overview
UNICEF's MICS survey collects child, maternal, and household data across low- and middle-income countries. This project focuses on the Malawi subset and treats depression (survey variable `FCF26`) as a binary outcome:
- **0** – No depression (*"Never"*)
- **1** – Any depression (*"A few times a year / Monthly / Weekly / Daily"*)
The goal is to deliver a well-tuned, interpretable classification model that can support government officials and health workers in understanding and addressing childhood mental health.
---
## Repository Structure
```
.
├── project.ipynb # Main report notebook (EDA, modelling, conclusions)
├── Data_pipeline.ipynb # Standalone data pipeline (preprocessing only)
├── Data_pipeline_refined.ipynb # Refined pipeline with full comments & best practices
├── unicef_malawi.csv # Dataset (not to be shared publicly – see Data Policy)
└── README.md
```
> **Note:** The extended data sources referenced in the project description (`ExtendedDataSources/`) and questionnaire documents (`Questionnaires/`) are not included here but were used to inform feature definitions.
---
## Data Pipeline
The pipeline (`Data_pipeline_refined.ipynb`) processes the raw CSV into train/test feature matrices in eight steps:
| Step | Function | Description |
|------|----------|-------------|
| 1 | — | Load raw CSV |
| 2 | `build_target` | Binarise `FCF26` into 0/1 |
| 3 | `drop_unusable_rows` | Remove rows with missing target or child age |
| 4 | `fix_skip_patterns` | Resolve survey skip-logic missings (structural NaN → known value) |
| 5 | …