Module 10 — Réglage des hyperparamètres et projet de bout en bout
Ce module assemble tout le cours en une démarche. On y apprend à régler méthodiquement un modèle, puis on déroule un projet complet — de la formulation à l'évaluation finale — qui met en scène chaque brique vue jusqu'ici.
Paramètres contre hyperparamètres
Distinction fondatrice :
- Les paramètres sont appris par le modèle pendant l'entraînement (les coefficients d'une régression, les seuils d'un arbre). On ne les fixe pas à la main.
- Les hyperparamètres sont fixés avant l'entraînement et gouvernent la manière d'apprendre :
max_depth,learning_rate,alpha,C,n_estimators.
Régler un modèle, c'est chercher les hyperparamètres qui donnent la meilleure performance en validation — la plupart contrôlant directement le compromis biais-variance du cours de mathématiques.
Recherche par grille ou al éatoire
Deux stratégies pour explorer l'espace des hyperparamètres :
- Recherche par grille (
GridSearchCV) : teste toutes les combinaisons d'une grille définie. Exhaustive mais coûteuse — le nombre d'essais explose vite. - Recherche aléatoire (
RandomizedSearchCV) : tire des combinaisons au hasard dans des plages données. Souvent plus efficace, car peu d'hyperparamètres pèsent vraiment ; explorer largement au hasard trouve de bons réglages plus vite qu'un quadrillage rigide.
from sklearn.model_selection import RandomizedSearchCV
param_dist = {
"n_estimators": [200, 400, 600],
"max_depth": [3, 4, 6, 8],
"learning_rate": [0.01, 0.05, 0.1],
}
search = RandomizedSearchCV(model, param_dist, n_iter=20, cv=5, scoring="f1", random_state=42)
search.fit(X_train, y_train)
search.best_params_
Chaque essai est évalué par validation croisée (module 8) : le réglage repose sur la validation, jamais sur le test. Au-delà, des méthodes bayésiennes (Optuna) proposent une exploration plus intelligente pour les gros espaces, mais la recherche aléatoire suffit dans la plupart des cas.
Régler sans fuite : le pipeline, encore
Le piège récurrent : prétraiter avant de régler laisse fuir l'information. La règle est immuable — tout le prétraitement entre dans le Pipeline, et c'est le pipeline entier qu'on passe à la recherche. Ainsi, à chaque combinaison et chaque pli, la standardisation et l'encodage sont réappris proprement.
from sklearn.pipeline import Pipeline
pipe = Pipeline([("scaler", StandardScaler()), ("model", model)])
# les clés deviennent "model__max_depth", etc.
Un projet de bout en bout
Voici la démarche complète, qui articule les dix modules :
Points de méthode qui font la différence : commencer par un modèle de référence simple (régression logistique ou forêt par défaut) pour fixer un niveau à battre ; comparer plusieurs familles par validation croisée avec la métrique choisie avant (module 9) ; ne toucher au test scellé qu'une seule fois, tout à la fin ; puis interpréter (importance des variables, matrice de confusion) et documenter les choix — la traçabilité du cours Python.
Un modèle légèrement moins précis mais interprétable, stable et rapide l'emporte souvent, en production, sur un champion opaque et fragile. Intégrez au choix final le coût d'inférence, la maintenabilité, l'explicabilité et le risque de dérive dans le temps. Le meilleur modèle n'est pas celui qui gagne un dixième de point en validation, mais celui qui tiendra ses promesses le jour où il rencontrera de vraies données.
En résumé
- Les paramètres s'apprennent ; les hyperparamètres se fixent avant l'entraînement et gouvernent le compromis biais-variance.
- On explore par recherche par grille (exhaustive) ou aléatoire (souvent plus efficace), toujours évaluée en validation croisée.
- Tout le prétraitement va dans le
Pipelinepour régler sans fuite. - Le projet type enchaîne formulation, découpage, exploration, pipeline de référence, comparaison, réglage, évaluation unique sur le test, interprétation ; la performance brute n'est jamais le seul critère.
Module suivant : la récapitulation générale et l'examen de certification qui valide votre maîtrise de l'apprentissage supervisé.