No description
- Python 68.6%
- TeX 21.9%
- Jupyter Notebook 8.4%
- Makefile 0.8%
- Nix 0.3%
| data/processed | ||
| models | ||
| notebooks | ||
| out | ||
| rapport | ||
| reports | ||
| scripts | ||
| src/smart_school | ||
| student_dataset | ||
| .envrc | ||
| .gitignore | ||
| a.pdf | ||
| AI-ML_Bruno_Masureel.pdf | ||
| flake.lock | ||
| flake.nix | ||
| Makefile | ||
| ml_2026_project_description.pdf | ||
| project_2026_dataset.zip | ||
| README.md | ||
Smart School ECAM — AI/ML Labs 2026
Projet de machine learning en deux parties :
- Failure prediction : régresser le score d'examen (et en dériver le risque d'échec) à partir d'un dataset tabulaire de 630 000 étudiants.
- OCR : reconnaître des caractères manuscrits 28×28 (62 classes, EMNIST-byClass) avec un CNN compact de type ResNet-light.
Le rapport final se trouve dans rapport/rapport.pdf.
Environnement (NixOS)
L'environnement est figé via un flake Nix.
nix develop
Avec direnv :
direnv allow
Structure
student_dataset/ Données originales fournies (CSV + IDX EMNIST)
src/smart_school/ Code Python réutilisable (loaders, pipelines, métriques)
scripts/ Scripts d'analyse et d'entraînement
notebooks/ Notebooks de synthèse des modèles
reports/figures/ Figures générées pour le rapport
reports/tables/ Tables CSV générées pour le rapport
docs/ Notes, plans et résumés d'analyse
models/ Modèles entraînés sauvegardés (joblib / PyTorch)
rapport/ Rapport LaTeX (rapport.tex → rapport.pdf)
Pipeline
Tous les artefacts du rapport sont régénérables via make. Principales cibles :
| Cible | Action |
|---|---|
make eda |
EDA failure + OCR |
make features |
Feature engineering (dataset enrichi) |
make ablation |
CV ablation des features (Ridge + HGB, calcul des VIF) |
make baseline |
Baselines Dummy / Ridge / LogReg / HGB |
make robust-benchmark |
Benchmark CV répété (Ridge, HGB, ExtraTrees, MLP, calibration) |
make score-benchmark |
Régression score → seuil (XGBoost, HGB, Ridge) |
make fairness |
Audit de fairness sur sous-groupes sensibles |
make final-model |
Ridge + LogReg balanced finaux, persistance dans models/ |
make advanced-security |
Manipulation du modèle failure + robustesse OCR |
make advanced-bias |
Métriques fairness avancées + mitigation |
make advanced-explainability |
Explications tabulaires + Integrated Gradients OCR |
make advanced |
Supplément Advanced AI Labs complet |
make ocr-baseline |
LogReg multinomiale sur pixels (62 classes) |
make ocr-cnn |
CNN ResNet-light (62 classes, accuracy-focused) |
make ocr-cnn-macro |
CNN ResNet-light (62 classes, macro-focused) |
make ocr |
EDA + baseline + CNN OCR |
make clean |
Nettoyage des artefacts générés |
make help liste toutes les cibles disponibles.
Reproductibilité
- Environnement et dépendances pinnés dans flake.nix (incl.
xgboost3.0.5 et PyTorch pour le CNN).