# Student Dropout Prediction — Morocco
An AI-based early warning system that predicts school dropout risk
at the student level, enabling timely intervention by school counselors.
Built as part of a PFA internship application mini-challenge.
## Problem
Morocco records nearly 295,000 school dropouts every year. The current
system is reactive — students are only flagged after they have already
left. This project builds a classifier that identifies at-risk students
before dropout occurs, using academic, socioeconomic, and demographic
features collected at enrollment and end of semester 1.
## Proposal
See `proposal_dropout_prediction_morocco.pdf`
for the full 2-page research proposal.
## Dataset
Predict Students' Dropout and Academic Success
— Martins et al. (2021), UCI ML Repository ID 697.
Download the CSV and place it as `data/data.csv` before running the notebook.
## Results
| Model | Accuracy | Recall | Precision | AUC |
|---------------------|----------|--------|-----------|-------|
| Logistic Regression | 0.869 | 0.803 | 0.792 | 0.919 |
| Random Forest | 0.880 | 0.785 | 0.832 | 0.926 |
| **XGBoost** | **0.885**| **0.806** | **0.830** | **0.933** |
Best model selected by **Recall** — missing a dropout student
carries a higher cost than a false alarm.
## Usage
```bash
pip install pandas numpy matplotlib seaborn scikit-learn xgboost imbalanced-learn joblib
```
Open `dropout_prediction.ipynb` and run all cells top to bottom.
The trained model will be saved to `models/best_model_XGBoost.pkl`.
## Author
**Mouhsin Tanani** — Data Science, Big Data & AI Engineering Student
ENSIASD, Taroudant, Morocco
LinkedIn · GitHub