Pourquoi votre baseline mérite plus d'amour que votre modèle
Un modèle complexe qui bat à peine une moyenne glissante n'est pas une victoire. C'est un avertissement.
Sommaire
Le réflexe du modèle complexe
On connaît tous la scène : un nouveau projet de prédiction démarre, et en moins d'une semaine quelqu'un entraîne un gradient boosting tuné, puis un petit réseau de neurones « pour voir ». Trois mois plus tard, le modèle est en production, il affiche une MAE de 4,2 — et personne ne sait dire si c'est bien.
C'est bien… par rapport à quoi ? Sans point de comparaison, une métrique est juste un nombre qui flotte. Et c'est exactement le rôle d'une baseline : donner un sol à ce nombre.
Une baseline, c'est quoi exactement ?
Une baseline est le modèle le plus simple qu'une personne raisonnable puisse construire pour votre problème. Elle a trois qualités :
- Elle est rapide à construire — quelques heures, pas quelques semaines.
- Elle est explicable en une phrase à n'importe quel interlocuteur métier.
- Elle est difficile à battre honnêtement — car elle capture souvent 80 % du signal disponible.
Le point le plus contre-intuitif est le troisième. En séries temporelles, « demain sera comme aujourd'hui » est redoutable. En recommandation, « les articles les plus populaires » l'est aussi. Votre modèle sophistiqué ne mérite d'exister que s'il fait significativement mieux.
Trois baselines qui sauvent des mois de travail
Voici celles que je déploie systématiquement, avant toute modélisation sérieuse :
- La moyenne glissante (séries temporelles) : la valeur prédite est la moyenne des n dernières observations. Idéale pour détecter qu'un « modèle » ne fait que suivre la tendance.
- La règle métier : demandez à un expert comment il déciderait à la main. Un seuil sur deux variables bat parfois un XGBoost — et il se déploie en une ligne de SQL.
- La régression logistique sur features brutes : rapide, stable, interprétable. C'est le prix d'entrée de tout modèle plus complexe.
En pratique, voici à quoi ressemble l'évaluation honnête d'un nouveau modèle :
from sklearn.dummy import DummyRegressor
from sklearn.metrics import mean_absolute_error
# Baseline 1 : toujours prédire la médiane
baseline = DummyRegressor(strategy="median")
baseline.fit(X_train, y_train)
mae_baseline = mean_absolute_error(y_test, baseline.predict(X_test))
# Votre modèle candidat
model.fit(X_train, y_train)
mae_model = mean_absolute_error(y_test, model.predict(X_test))
gain = 1 - mae_model / mae_baseline
print(f"Baseline : {mae_baseline:.2f} | Modèle : {mae_model:.2f} | Gain : {gain:.1%}")
Ma règle des 5 %
Si le gain sur la baseline est inférieur à 5 %, je ne complexifie pas : j'améliore les données ou les features. Un modèle deux fois plus coûteux pour 2 % de mieux est une mauvaise affaire — en maintenance comme en crédibilité.
Quand passer au modèle complexe
La complexité se justifie quand trois conditions sont réunies : le gain mesuré est matériellement significatif pour le métier (pas seulement statistiquement), le surcoût opérationnel est assumé (monitoring, ré-entraînement, on-call), et l'équipe sait expliquer pourquoi le modèle gagne.
La prochaine fois qu'on vous présente un modèle impressionnant, posez la seule question qui compte : « il bat quoi, exactement ? » La réponse vous en dira plus que toutes les courbes ROC du monde.