Machine Learning 5 — Exercices de synthèse
:::tip Notebook Kaggle Le code complet et exécutable de ce chapitre est sur Kaggle : Ouvrir →
Versions anglaise et chinoise disponibles depuis la page d'accueil. :::
Quatre exercices de synthèse pour mettre en pratique tout ce qui précède. Chaque dataset met l'accent sur une compétence spécifique vue dans les chapitres précédents. Le notebook fournit des corrigés de référence : des baselines solides, pas des solutions optimales pour Kaggle, mais des squelettes propres qu'on peut affiner.
Mercedes-Benz Greener Manufacturing
Type : régression haute dimension.
Le dataset contient ~370 features mixtes (catégorielles codées par lettres + binaires) pour prédire y, un score de performance issu d'un banc de test.
Ce qu'on attend
- Charger le dataset, vérifier la cible et les types.
- Mettre en place un
ColumnTransformer:OneHotEncoderpour les catégorielles,VarianceThresholdpour retirer les binaires quasi constantes. - Entraîner une Ridge ou un GradientBoostingRegressor dans un
Pipeline. - Évaluer en MAE / RMSE / R² sur un test split.
Pourquoi cet exercice ?
C'est l'archétype du dataset à haute dimensionnalité où le préprocessing prend plus de temps que le modèle. La sélection de variables (via VarianceThreshold ou Lasso) y joue un rôle clé.
Stroke Prediction
Type : classification déséquilibrée + valeurs manquantes.
Prédire la survenue d'un AVC à partir de facteurs démographiques, médicaux et de mode de vie. ~5 000 observations, dont seulement ~5 % positives.
Ce qu'on attend
- Charger, retirer
id. Vérifier le déséquilibre. - Traiter
bmi(vraies NaN) etsmoking_status='Unknown'(NaN déguisée). - Pipeline avec
SimpleImputer+OneHotEncoder+StandardScaler. - Modèle avec
class_weight='balanced', ou pipelineimblearnavec SMOTE. - Évaluer avec matrice de confusion, précision/rappel/F1, et PR-curve.
Pourquoi cet exercice ?
L'archétype du déséquilibre fort où l'accuracy ne veut plus rien dire. Un FN (AVC raté) coûte beaucoup plus qu'un FP (fausse alerte). Le choix du seuil et de la métrique de validation devient critique.
House Prices — Ames
Type : régression complexe avec mélange numérique/catégoriel.
Prédire SalePrice à partir de ~80 caractéristiques d'une maison à Ames (Iowa). Beaucoup de valeurs manquantes structurelles (NaN qui veut dire « pas de garage », « pas de sous-sol », etc.).
Ce qu'on attend
- Charger, retirer
Id. - Pipeline :
SimpleImputermédiane (num) +'missing'(cat), One-Hot, scale. - Modèle :
GradientBoostingRegressorou XGBoost. - Évaluer en RMSE sur log(SalePrice) — la métrique de la compétition Kaggle, qui pénalise mieux les écarts relatifs.
Pour aller plus loin
Quelques idées de feature engineering qui améliorent significativement le score :
TotalSF = TotalBsmtSF + 1stFlrSF + 2ndFlrSF: la surface totale est la variable la plus prédictive.Age = YrSold - YearBuilt,RemodAge = YrSold - YearRemodAdd.HasGarage = GarageArea > 0,HasPool = PoolArea > 0.
MNIST
Type : classification d'images, passerelle vers la vision.
10 000 images 28×28 de chiffres manuscrits, à classer en 10 classes.
Ce qu'on attend
- Charger un sous-échantillon (10 000 lignes suffisent pour un k-NN ou RF).
- Visualiser quelques chiffres avec
imshow. - Normaliser les pixels dans
[0, 1]. - Entraîner un
RandomForestClassifierou unKNeighborsClassifier. - Évaluer : accuracy + matrice de confusion 10×10 (très instructive).
Pourquoi cet exercice ?
Pour montrer que les modèles ML « tabulaires » marchent étonnamment bien sur des images simples (~95 % d'accuracy avec une RF sur les pixels flat). Mais aussi pour motiver le passage au deep learning et aux CNN au cours suivant : un CNN bien réglé monte au-delà de 99 % sur MNIST sans difficulté.
La matrice de confusion révèle les confusions classiques : 4↔9, 3↔5, 7↔1. Ce sont des chiffres visuellement proches.