Aller au contenu principal

Data Science & ML · L3 · Section 2/12

Apprentissage supervisé

Progression

Points d’expérience : XPSérie de jours consécutifs : · —Progression du module : — / —compris

#Apprentissage supervisé

L'apprentissage supervisé consiste à apprendre une fonction qui associe des entrées (features) à des sorties (labels) à partir d'exemples annotés. On distingue la classification (prédire une classe) et la régression (prédire une valeur continue).

#Prérequis et objectifs

Prérequis: page « Pipeline et features » (split, scaling, encodage), algèbre linéaire de base (produit scalaire, hyperplan), page d'index du module (rôles de train/val/test).

Objectifs d'apprentissage:

  • choisir un type de tâche (classification binaire, multi-classe, régression, multi-label) selon la nature de la sortie;
  • décrire le mécanisme et les compromis des algorithmes classiques: régression logistique, arbres, forêts, gradient boosting, SVM;
  • appliquer la validation croisée pour estimer la généralisation et régler les hyperparamètres;
  • reconnaître le sur-apprentissage sur l'écart train/validation et le traiter (régularisation, profondeur limitée).

#Types de problèmes

Classification binaire
Spam/non-spam, fraude/légitime
Classification multi-classe
Chiffres manuscrits, espèces animales
Régression
Prix immobilier, température
Multi-label
Tags d'articles, genres musicaux

Le critère de choix est la nature de la sortie: deux catégories (binaire), plusieurs catégories exclusives (multi-classe, une seule vraie par exemple), un nombre réel (régression), ou plusieurs étiquettes simultanées (multi-label: un article peut être à la fois « politique » et « économie »). Confondre multi-classe et multi-label conduit à un modèle faux même avec de bonnes données.

#Algorithmes classiques

Les algorithmes de base à maîtriser avant de passer aux réseaux de neurones:

Régression logistique: modèle linéaire pour la classification, interprétable via les coefficients. Rapide à entraîner, sert souvent de baseline. Sortie probabiliste calibrable.

Arbres de décision: partitionnent l'espace des features par seuils successifs. Interprétables mais sensibles au sur-apprentissage. Hyperparamètres clés: profondeur maximale, nombre minimum d'exemples par feuille.

Random Forest: ensemble d'arbres entraînés sur des sous-échantillons bootstrap, agrégés par vote. Réduit la variance, très robuste, peu de tuning nécessaire.

Gradient Boosting (XGBoost/LightGBM): arbres séquentiels corrigeant les erreurs précédentes. Souvent les meilleurs résultats sur données tabulaires, au prix d'un apprentissage séquentiel moins parallélisable.

SVM: trouve l'hyperplan de marge maximale. Efficace en haute dimension, mais coûteux sur grands jeux de données.

#Exemple: comparaison de modèles

Chargement de l’éditeur...

Exercice observable: ajoutez 'Arbre libre': DecisionTreeClassifier() (profondeur illimitée) au dictionnaire, et comparez son score CV à celui de l'arbre de profondeur 5. Puis, pour voir le sur-apprentissage directement, évaluez chaque modèle sur ses propres données d'entraînement via cross_val_score(..., return_train_score=True) et lisez mean_train_score contre mean_test_score. Résultat attendu: l'arbre libre affiche un train score proche de 1.0 mais un test score inférieur à celui de l'arbre limité: c'est la signature observable du sur-apprentissage, et la raison d'être des hyperparamètres de profondeur.

#Régularisation

La régularisation pénalise les modèles trop complexes pour éviter le sur-apprentissage:

L1 (Lasso): pousse certains coefficients à zéro, donc sélectionne des features.

L2 (Ridge): réduit la magnitude de tous les coefficients, donc produit un modèle plus lisse.

Elastic Net: combine L1 et L2.

Chargement de l’éditeur...

Observation attendue: le L1 laisse nettement moins de coefficients non-nuls que le L2 (souvent de l'ordre de 5 à 15 contre 50), avec une accuracy comparable. C'est la sélection de variables en action: sur 50 features dont 5 informatives, le Lasso élimine le bruit. La page « Régularisation et sélection » développe le lien avec le compromis biais-variance.

#Validation croisée

La cross-validation estime la performance de généralisation en répétant l'entraînement sur différents splits:

pythonpython

1from sklearn.model_selection import cross_val_score, StratifiedKFold2 3cv = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)4scores = cross_val_score(model, X, y, cv=cv, scoring='f1')5print(f"F1 moyen: {scores.mean():.3f} ± {scores.std():.3f}")

L'écart-type entre folds est une information en soi: un modèle à 0.80 ± 0.02 est plus prévisible qu'un modèle à 0.82 ± 0.08, surtout si les folds sont stratifiés et donc comparables.

#Quiz

Quel algorithme est généralement le plus performant sur des données tabulaires structurées?
Quel algorithme est généralement le plus performant sur des données tabulaires structurées?
Un arbre de décision non limité atteint 100% d'accuracy sur le train et 72% en validation. Que faire?
Un arbre de décision non limité atteint 100% d'accuracy sur le train et 72% en validation. Que faire?