17 July 202617 juillet 2026article
The Silent Killer of Financial ML Models: Feature LeakageLe tueur silencieux des modèles de ML financier : la fuite de caractéristiques
A model that predicts the past perfectly and the future not at all — usually because it was accidentally shown the answer.Un modèle qui prédit parfaitement le passé et pas du tout le futur — généralement parce qu'on lui a accidentellement montré la réponse.
Machine LearningData Science
Feature leakage is the single most common reason a financial machine learning model performs beautifully in validation and falls apart the moment it sees live data. Unlike a bug that crashes the program, leakage produces a model that runs perfectly — it's just quietly cheating.
What leakage actually looks like
In its most obvious form, leakage means a feature encodes information that would not have been known at prediction time — for example, using a stock's closing price on day t to help predict its return on day t. No one does that on purpose. It shows up in far subtler ways:
- Engineered features built on the full series. Computing a rolling z-score, a PCA component, or a normalization constant using the entire dataset — including future rows — before splitting into train and test. The scaler has already "seen" the future distribution.
- Target-adjacent features. A feature that is a lightly disguised transformation of the label itself, such as using next-day realized volatility as a predictor for a volatility-regime classification target.
- Random train/test splits on time series. Shuffling rows before splitting means the model trains on data from after some of its test points, effectively letting it learn from the future to predict the past.
La fuite de caractéristiques (feature leakage) est la raison la plus courante pour laquelle un modèle de machine learning financier offre d'excellentes performances lors de la validation mais s'effondre dès qu'il est confronté à des données en direct. Contrairement à un bug qui fait planter le programme, la fuite produit un modèle qui tourne parfaitement — c'est juste qu'il triche discrètement.
À quoi ressemble réellement la fuite
Dans sa forme la plus évidente, la fuite signifie qu'une caractéristique encode des informations qui n'auraient pas été connues au moment de la prédiction. Personne ne fait ça exprès. Cela se manifeste de manières bien plus subtiles :
- Caractéristiques construites sur l'ensemble de la série. Calculer un z-score glissant ou une composante PCA en utilisant l'ensemble des données avant de séparer l'entraînement et le test. Le scaler a déjà "vu" la distribution future.
- Caractéristiques adjacentes à la cible. Utiliser la volatilité réalisée du lendemain comme prédicteur pour une cible de classification de régime de volatilité.
- Scissions train/test aléatoires. Mélanger les lignes avant la séparation signifie que le modèle s'entraîne sur des données datant d'après certains de ses points de test.