DL2026 — Final Project · Team FBOUR [Arthur · Bradley · Manu · Minh · Nao]
Headline result: test macro-AUC = 0.8824 vs XGBoost baseline = 0.8780
Ablation (no exam_score): macro-AUC = 0.8761 — confirms model is not purely leak-driven.
# 1. Clone and enter repo
git clone https://github.com/Arthurvroum/fbour-deeplearning.git
cd student-triage
# 2. Install dependencies (Python 3.11 recommended)
pip install -r requirements.txt
# 3. Generate the dataset
python data/generate_dataset.py # → data/student_dataset_10000_rows.csv
# 4. Train the model (~5 min CPU / ~45 s GPU)
python src/train.py
# 5. Reproduce the headline number
python evaluate.pyExpected output:
==================================================
HEADLINE test macro-AUC = 0.8824
Secondary macro-F1 = X.XXXX
Avg inference latency = X.XXX ms/sample
==================================================
Target macro-AUC ≥ 0.85: ✓ PASS
student-triage/
├── data/
│ ├── generate_dataset.py # Synthetic dataset generator (seed=42)
│ └── student_dataset_10000_rows.csv
├── src/
│ ├── dataset.py # DataLoader, 70/15/15 stratified split, StandardScaler
│ ├── model.py # 4-layer SELU MLP (LeCun init, AlphaDropout)
│ ├── train.py # Training loop + early stopping
│ ├── baseline.py # XGBoost baseline (max_depth=3)
│ ├── ablation.py # Ablation: trained without exam_score
│ └── failure_analysis.py # Top-10 false negatives analysis
├── notebooks/
│ └── eda.py # EDA: correlations, feature distributions
├── checkpoints/
│ └── best.pt # Best checkpoint (val AUC)
├── logs/ # JSON logs + plots (auto-generated)
├── evaluate.py # ← HEADLINE REPRODUCER
├── requirements.txt
├── LICENSE
└── README.md
| Model | Test macro-AUC |
|---|---|
| XGBoost baseline (max_depth=3) | 0.8780 |
| SELU MLP 4-layer (ours) | 0.8824 |
| Ablation — no exam_score | 0.8761 |
| Item | Value |
|---|---|
| Seed | 42 (torch + numpy + sklearn) |
| Hardware | CPU (Intel i7) or GPU (NVIDIA RTX 3080) |
| Training time | ~5 min CPU / ~45 s GPU |
| Python | 3.11 |
| PyTorch | 2.3.0 |
| Checkpoint | checkpoints/best.pt |
python src/baseline.py # XGBoost baseline
python src/ablation.py # Ablation (no exam_score)
python src/failure_analysis.py # Top-10 false negatives
python notebooks/eda.py # EDA plotsMIT — see LICENSE.