Retour à López de Prado

Revue de recherche · ensembles & feature importance · étude 09

Ensembles & Feature Importance

Sur 40 instruments en crypto, actions et forex, le bagging généralise ~4,8× mieux que le boosting, sans pour autant produire le moindre edge exploitable

López de Prado formule trois affirmations nettes et testables sur le machine learning appliqué aux données financières : le bagging généralise mieux que le boosting sur des labels bruités et chevauchants ; la MDI mesurée in-sample souffre d'un biais de substitution, contrairement à la MDA out-of-sample ; et un classifieur doit être réglé par une perte probabiliste, non par l'accuracy. Cette étude soumet les trois à un test multimarché, intégralement chiffré et contrôlé contre les fuites, sur 40 instruments, 27 perpétuels crypto, 5 ETF actions américaines et 8 paires majeures du forex, avec purged cross-validation et un filtre de Deflated Sharpe. Les trois se répliquent proprement. Aucune n'achète d'edge exploitable.

source

Advances in Financial ML, chap. 6 & 8

López de Prado (2018) · ensembles & feature importance

Code & données

lopez-de-prado-work-review / projects / 09

the claim

Ce que dit López de Prado

  • Le bagging généralise mieux que le boosting sur des données financières : les labels sont bruités et sériellement chevauchants, si bien que le boosting poursuit ce bruit en repondérant les cas difficiles (souvent mal étiquetés) et surapprend, tandis que le bagging moyenne des arbres décorrélés et se montre plus robuste.
  • La feature importance MDI est biaisée, elle est in-sample et mécaniquement gonflée pour les features corrélées (l'effet de substitution) ; utilisez la MDA out-of-sample fondée sur la permutation, et regroupez (cluster) les features corrélées en permutant des clusters entiers pour supprimer l'artefact. Réglez les classifieurs par une perte probabiliste (log-loss), non par l'accuracy.

our result

Ce que nous avons trouvé

  • Les trois affirmations se répliquent proprement sur 40 instruments dans trois marchés : l'écart de généralisation IS→OOS du bagging est ~5× plus petit que celui du boosting (100% des instruments, p=1,8e-12, le boosting pousse littéralement la log-loss OOS au-delà du pile ou face) ; la MDA est essentiellement sans biais (ρ 0,07 contre MDI 0,49) ; et régler par log-loss bat régler par accuracy (p=8,3e-6).
  • Deux nuances honnêtes : sur ce jeu de 10 features, la clustered-MDA achète de la stabilité de sélection, non du débiaisage (la MDA seule est l'outil de débiaisage), et le jeu de features retenu n'est qu'à peine plus stable que l'aléatoire.
  • Le verdict honnête : 0 instrument sur 40 dépasse clairement DSR > 0,95. Mieux généraliser est nécessaire mais non suffisant pour avoir un edge, c'est une victoire méthodologique propre, avec zéro alpha exploitable.

Le résultat en trois lignes

40 instruments · 3 marchés

Le bagging généralise ~4,8× mieux que le boosting

Construit dans les règles de l'art, un RandomForest maintient son écart de log-loss de l'in-sample à l'out-of-sample ~4,8× plus serré que HistGradientBoosting, et ce sur 100% des 40 instruments (Wilcoxon p = 1,8e-12). Le boosting pousse la log-loss in-sample à ~0,25 en mémorisant les labels bruités et chevauchants, puis le paie d'une log-loss out-of-sample au-delà du pile ou face (ln2 ≈ 0,693). La première prescription tient sans ambiguïté.

MDI ρ 0,49 · MDA ρ 0,07

La MDI souffre d'un biais de substitution ; la MDA non

L'importance de la Mean-Decrease-Impurity est corrélée (en rang) au degré de corrélation d'une feature avec les autres (ρ ≈ 0,49), l'artefact de substitution. La mesure de permutation out-of-sample, la MDA notée par log-loss, n'en montre quasiment rien (ρ ≈ 0,07 ; inférieure à la MDI sur 88% des instruments, p = 1,2e-6). Plusieurs features favorisées par la MDI obtiennent une MDA négative, les permuter améliore la log-loss out-of-sample. Le retournement : sur ce jeu de 10 features, la clustered-MDA achète de la stabilité de sélection, non du débiaisage.

0 / 40 dépassent DSR > 0,95

Mieux généraliser n'est pas un edge

Le verdict honnête. Aucun des deux ensembles ne produit un Deflated Sharpe Ratio proche de la barre publiable de 0,95 sur aucun des 40 instruments, le Sharpe médian par pari est négatif pour les deux, et le bagging remporte le duel de généralisation de façon décisive sans rien gagner au duel du DSR (p apparié = 0,74). Une réplication méthodologique propre avec un résultat d'edge nul ; cette séparation est tout l'enjeu.

Affirmation 1, bagging vs boosting, sur 40 instruments

Le boosting mémorise le jeu d'entraînement, puis le paie out-of-sample

Fig. 1:Le bagging bat le boosting sur chaque instrument. À gauche : chaque point est l'écart de log-loss IS→OOS du boosting (HGB) d'un instrument contre son écart de bagging (RF) ; les 40 sont au-dessus de la diagonale, le boosting surapprend davantage, partout (Wilcoxon p = 1,8e-12). À droite : log-loss in-sample vs out-of-sample par marché. Le boosting pousse la log-loss in-sample à ~0,25 (bien sous le plafond du pile ou face ln2 ≈ 0,693), mais sa log-loss out-of-sample le dépasse (~0,81 en crypto et forex). Le bagging garde les deux proches (~0,57 → ~0,68).

La première prescription tient sans ambiguïté. Un RandomForest construit dans les règles de l'art maintient son écart de log-loss de l'in-sample à l'out-of-sample environ 4,8× plus serré que HistGradientBoosting, et ce sur 100% des 40 instruments dans les trois marchés (Wilcoxon apparié p = 1,8e-12).

Le mécanisme est exactement celui du manuel. Sur les deux marchés véritablement bruités, crypto et forex, la capacité supplémentaire du boosting est dépensée à ajuster les labels bruités et sériellement chevauchants : sa log-loss in-sample s'effondre à ~0,25, bien sous le plafond du pile ou face, mais sa log-loss out-of-sample est pire qu'un pile ou face (~0,81 > ln2 ≈ 0,693). La forêt baggée ne mémorise jamais, elle tient l'in-sample à ~0,57 et l'out-of-sample à ~0,68, restant au niveau du pile ou face ou en dessous hors échantillon. Les actions sont basses pour les deux modèles pour une autre raison : un label à classes déséquilibrées (taux de base ~0,17) que la forêt prédit trivialement in-sample.

écart IS→OOS bagging

0.114

RandomForest, réglé par NLL

écart IS→OOS boosting

0.539

HistGradientBoosting

ratio des écarts

4.8×

le boosting surapprend plus

RF < HGB

100%

des 40 instruments

Wilcoxon apparié

1.8e-12

valeur p

DSR > 0,95

0 / 40

l'un ou l'autre ensemble

marchéRF ISRF OOSHGB ISHGB OOS
Crypto27 perpétuels0.5690.6800.2550.809
Actions5 ETF0.1340.5570.1530.659
Forex8 majeures0.5690.6770.2770.808

Log-loss médiane par marché, réglée par NLL. La log-loss out-of-sample du boosting dépasse le pile ou face (ln2 ≈ 0,693) en crypto et forex, pire qu'un pile ou face. Celle du bagging reste au niveau ou en dessous partout.

Explorer le surapprentissage

Le même effet, un instrument ou un marché à la fois. Chaque chiffre est le résultat réel du panel par instrument, réglé par NLL, purged-CV, chiffré.

Choisissez un marché pour voir la médiane de son panel, ou plongez dans un seul instrument. Le graphique de gauche oppose la log-loss in-sample et out-of-sample de la forêt baggée et des arbres boostés à la ligne du pile ou face ; celui de droite montre le biais de substitution des trois mesures d'importance. La barre in-sample du boosting se situe bien sous le pile ou face, il a mémorisé les labels, tandis que sa barre out-of-sample le dépasse généralement.

Démo, explorateur de surapprentissage bagging vs boosting

Le boosting pousse la log-loss in-sample bien sous le pile ou face (il mémorise le jeu d'entraînement) mais sa log-loss out-of-sample le dépasse. La forêt baggée garde l'in-sample et l'out-of-sample proches. Panneau de droite : seule l'importance de la MDA est exempte de biais de substitution.

réglé par NLL · purged-CV · chiffré
Marché (médiane du panel)
… ou un instrument
écart IS→OOS du RF (bagging)
0.113
écart IS→OOS du HGB (boosting)
0.550
ratio des écarts boosting / bagging
4.9×
HGB out-of-sample vs pile ou face
0.808 > ln2, pire qu'un pile ou face
log-loss, in-sample vs out-of-sample0.000.250.500.751.00pile ou face ln2 ≈ 0,6930.57RFIS0.68RFOOS0.26HGBIS0.81HGBOOSbagging (RF), vert · boosting (HGB), rouge
biais de substitution, ρ(importance, |corr|)-0.50.00.51.0MDI0.49MDA0.12clust-MDA0.55proche de 0 = non biaisé (vert) · proche de +0,5 = biais de substitution (rouge)

Crypto : médiane sur 27 instruments. La log-loss in-sample du boosting est 0.255 (bien sous le pile ou face ln2 ≈ 0,693, il a mémorisé les labels), mais sa log-loss out-of-sample est 0.808, au-delà du pile ou face. La forêt baggée tient l'in-sample à 0.569 et l'out-of-sample à 0.680, un écart 4.9× plus petit. Biais de substitution ρ(importance, |corr|) : MDI 0.491, MDA 0.115, clustered-MDA 0.552, seule la MDA est proche de zéro.

Le panel s'est reproduit de façon bit-identique d'une exécution à l'autre (random_state = 0 partout, BLAS/OMP épinglés à un thread par processus). Les boucles chaudes hors sklearn, le tirage du sequential-bootstrap et le comptage de co-événements / l'unicité moyenne des labels, sont compilées en JIT et vérifiées bit-identiques contre des références en Python pur.

Fig. 2:MDI (in-sample, biaisée) versus MDA (permutation out-of-sample) par feature, un instrument par marché. Là où la MDA devient négative, p. ex. mom6/mom12/vol en actions et forex, permuter la feature améliore la log-loss out-of-sample : le modèle s'appuyait trop dessus. La MDI classe pourtant ces mêmes features haut.

Affirmation 2, la MDI est biaisée, la MDA non

La Mean-Decrease-Impurity est calculée in-sample et mécaniquement gonflée pour les features corrélées : l'importance d'une méthode finit corrélée (en rang) au degré de corrélation de chaque feature avec les autres (ρ ≈ 0,49, maximal en forex à 0,67). Le bloc de momentum et le bloc de volatilité se partagent le crédit d'impureté et se gonflent mutuellement. La mesure de permutation out-of-sample, la MDA notée par log-loss, n'en montre quasiment rien (ρ ≈ 0,07 ; inférieure à la MDI sur 88% des instruments, p = 1,2e-6). De façon frappante, plusieurs features que la MDI classe haut obtiennent une MDA négative : les permuter améliore la log-loss out-of-sample, signe que le modèle s'appuyait trop sur le bruit. La MDI les conserve ; la MDA les signale comme nuisibles.

Le retournement honnête est que la clustered-MDA ne supprime pas le biais sur ce jeu de features. Avec seulement 10 features se condensant en ~5 clusters, les features corrélées tombent dans le même cluster, si bien que la permutation de cluster entier attribue encore une grande importance à ce cluster corrélé, et le réétaler en features réintroduit l'association avec |corr| (ρ ≈ 0,52, statistiquement indistinguable de la MDI, p = 0,22). Ce que le clustering achète, c'est de la stabilité de sélection : condenser les substituts fait passer le Jaccard du top-3 entre les chemins CPCV de 0,26 (MDA) à 0,46 (p = 1,8e-12). La sélection propre de la MDA est véritablement au-dessus de la baseline aléatoire (0,20) sur 98% des instruments, mais à peine stable, il ne faut pas surinterpréter « les meilleures features » sur cette tâche.

Fig. 3:À gauche : biais de substitution ρ(importance, |corr|) entre instruments, MDI et clustered-MDA se centrent près de +0,5, seule la MDA chevauche zéro. À droite : stabilité de sélection du top-3 (Jaccard moyen sur les 15 chemins CPCV). Le 0,58 de la MDI est gonflé par le biais même qui la rend peu fiable ; le clustering fait passer la MDA de 0,26 à 0,46 ; la MDA elle-même est tout juste au-dessus de la baseline aléatoire de 0,20.
méthodebiais ρstabiliténote
MDI0.4850.582baseline in-sample, biaisée
MDA0.0730.263permutation out-of-sample, non biaisée
clustered-MDA0.5170.463stabilité, pas débiaisage
random baseline, 0.2013 features sur 10 au hasard

Médiane sur le panel de 40 instruments. Le biais ρ est la corrélation de Spearman entre l'importance d'une méthode et la |corrélation| moyenne de chaque feature ; la stabilité est le Jaccard moyen du top-3 sur les 15 chemins CPCV. La leçon : avec un jeu de features petit et modérément corrélé, la MDA, et non la clustered-MDA, est l'outil de débiaisage ; le clustering compte davantage quand de nombreuses features fortement corrélées doivent être absorbées.

Le correctif, mesuré de la bonne façon

Scorer l'importance par cluster, pas par feature

Fig. 5:Clustered feature importance sur BTCUSDT. À gauche : dendrogramme de Ward sur 1−|corr|, le bloc side/mom6/mom12/rsi et le bloc vol/range_atr fusionnent étroitement. Au milieu : MDI clusterisée (somme intra-cluster) et MDA clusterisée (permutation du bloc entier) ; le point marque la MDI flat du meilleur membre isolé, C1 passe de 0,148 (meilleur membre) à 0,385 (cluster). À droite : stabilité du classement d'un fold purgé à l'autre, le clustering relève la MDI de 0,89 à 0,97 et la MDA de 0,12 à 0,30.

Le panneau précédent mesurait la clustered-MDA telle qu'on la détourne d'habitude, regrouper les features corrélées en clusters, puis ré-étaler les scores sur les features individuelles. Ainsi faite, elle suit encore la |corr|. Mais ce n'est pas à cela que sert la clustered feature importance de López de Prado. Le correctif est de lire le score au niveau du cluster : regrouper les features corrélées, permuter ou sommer le bloc entier, et ne jamais le ré-attribuer aux membres. Sur la même tâche triple-barrier de BTCUSDT, 351 événements, 10 features se ramenant à 6 clusters par linkage de Ward sur 1−|ρ|, c'est exactement ce qui guérit l'effet de substitution.

Le bloc corrélé de momentum/side (C1 : side, mom6, mom12, rsi) ne paraît que modéré par feature, son meilleur membre isolé obtient une MDI flat de 0,148. Scoré comme un seul cluster, il est le moteur dominant unique, à 0,385, soit environ 2,6× son meilleur membre : le crédit d'impureté que l'effet de substitution divisait en quatre est réuni. La dé-dilution est concrète, le Gini du vecteur d'importance passe de 0,205 (flat) à 0,337 (clusterisé). Et le classement au niveau du cluster est bien plus stable d'un fold purgé à l'autre : la stabilité de la clustered-MDA est de ~0,30 contre ~0,12 en flat, environ 2,5×, le clustering fonctionne donc sur l'axe pour lequel il est conçu.

clusterMDI clusteriséeMDI meilleur membreMDA clusterisée
C10.3850.1480.074
C50.2130.1130.032
C20.1530.1530.024
C30.0940.0940.004
C40.0860.0860.009
C60.0690.069-0.000

Importance au niveau du cluster, BTCUSDT (RF réglée par neg-log-loss, CV purgée). La MDI clusterisée somme l'impureté intra-cluster ; la MDA clusterisée permute le bloc entier. Pour les clusters à un seul membre (C2–C4, C6), le score du cluster égale son unique membre. L'effet de substitution n'apparaît que là où un cluster réunit plusieurs features corrélées (C1, C5) : le score du cluster y dépasse celui de son meilleur membre, réunissant le crédit divisé. C1 est le moteur dominant unique, à 0,385, soit environ 2,6× sa meilleure feature individuelle.

Fig. 4:Écart de surapprentissage en réglant par log-loss (y) versus par accuracy (x), par instrument. La plupart des points sont sous la diagonale, régler par log-loss surapprend moins (AFML 9.4). L'effet est le plus fort là où les deux objectifs divergent sur la configuration choisie.

Affirmation 3, régler par log-loss, non par accuracy

Le contrôle méthodologique court de bout en bout : chaque modèle est réglé à la fois par log-loss négative et par accuracy. Régler par log-loss donne un écart de surapprentissage significativement plus petit (moyenne agrégée 0,331 contre 0,421, Wilcoxon p = 8,3e-6), et l'effet tient par modèle pour les deux familles (RF p = 4,4e-4, HGB p = 1,3e-4). Les deux objectifs ne choisissent la même configuration que ~60% du temps pour le RF et ~52% pour le HGB, donc sur environ la moitié des instruments le choix de la métrique change le modèle retenu, et quand c'est le cas, le choix par log-loss généralise mieux.

…et pourtant aucun edge (la partie honnête)

C'est la nuance que les prescriptions ne couvrent pas : mieux généraliser est nécessaire, mais non suffisant, pour avoir un edge. Sur cette tâche de meta-labeling par croisement d'EMA, aucun des deux ensembles ne produit un Deflated Sharpe Ratio proche de la barre de 0,95, le Sharpe médian par pari est négatif pour les deux, et une fois le Sharpe déflaté contre la recherche en grille agrégée, le DSR s'effondre à ~0. Le bagging remporte le duel de généralisation de façon décisive et celui du DSR en rien (p apparié = 0,74). Sur l'ensemble des 40 instruments, 0 ne dépasse clairement DSR > 0,95 ; le seul à frôler est l'USDJPY (DSR HGB 0,92), suivi de l'EURUSD (DSR RF 0,56), tous deux forex, où la tâche chiffrée est la moins adverse. Une réplication méthodologique propre avec un résultat d'edge nul, et cette séparation est précisément la contribution.

Méthode

  • Une tâche structurelle fixe, un croisement primaire d'EMA(20/60) fixe le sens ; une triple barrière (prise de profit 1,5σ, stop 1,0σ, durée max 50 barres, σ = volatilité EWMA causale) balayée sur l'OHLC intra-barre complet donne l'issue ; le meta-label est y = 1[P&L net > 0] après coût aller-retour réaliste. Dix features causales (side, vol, ma_gap, mom3/6/12, rsi, vol_ratio, ofi, range_atr). C'est une étude de modèle/importance, non un balayage de labels.
  • Deux ensembles, construits fidèlement : le bagging est un RandomForest à la manière de l'AFML, max_features bas pour décorréler les arbres, feuilles régularisées sous pondération, sample-weights par unicité de label, et max_samples fixé à l'unicité moyenne de label (l'analogue du sequential-bootstrap). Le boosting est HistGradientBoosting sur une petite grille d'itérations, taux d'apprentissage, nœuds-feuilles et L2.
  • Toute la validation croisée est purged k-fold avec embargo, la portée de chaque label étant mappée de l'espace des barres à l'espace des événements de sorte que les lignes d'entraînement chevauchant un fold de test sont écartées. La stabilité de l'importance est mesurée sur la CPCV (C(6,2) = 15 chemins).
  • Chaque modèle est hyper-réglé deux fois, par log-loss négative (résultat principal, AFML 9.4) et par accuracy (contrôle), pour comparer les écarts de surapprentissage obtenus. La P(profit) purged out-of-fold dimensionne chaque pari ; le P&L chiffré alimente une série de rendements par barre dont le Sharpe est déflaté contre la dispersion de la grille agrégée RF+HGB.
  • Importance de trois façons : MDI à partir d'un unique ajustement plein échantillon (la baseline in-sample biaisée), MDA comme permutation purged out-of-fold notée par log-loss, et clustered-MDA permutant des clusters de corrélation entiers. Le biais de substitution est le ρ de Spearman entre l'importance d'une méthode et la |corrélation| moyenne de chaque feature ; la stabilité de sélection est le Jaccard moyen apparié du top-3 sur les chemins CPCV contre une baseline de sélection aléatoire.
  • Barres pilotées par l'information tout du long, dollar bars pour la crypto et les actions, count bars pour le forex, avec des coûts non nuls sur chaque pari (crypto : forfait 7 bp/côté ; actions et forex : demi-spread causal selon l'heure plus commission/swap, ≈1–2 bp/côté). Deux ETF (XLF, XLV) ont été écartés par un plancher de classe minimal piloté par les données, non à la main.

Notes & limites

L'étude sépare délibérément « généralise mieux / moins biaisé » (qui se répliquent tous) d'« edge » (qui n'apparaît pas), et le verdict honnête, 0/40 au-dessus de la barre de 0,95, fait l'intégrité du travail. Les actions sont le maillon le plus faible : leurs paris par croisement d'EMA ne franchissent le seuil coût-et-barrière que ~17–23% du temps, si bien que leur faible log-loss in-sample est en partie un artefact de déséquilibre de classes, et deux ETF ont échoué d'emblée à un plancher de classe minimal. Le max_samples du RandomForest est fixé à l'unicité moyenne de label comme analogue de premier ordre du véritable sequential bootstrap (fidèle à l'intention, non à la procédure exacte). Le nombre d'essais du Deflated Sharpe est modeste, 14 configurations, donc la déflation est, au mieux, généreuse, et le DSR reste ~0.

Reproductibilité

Chaque feature et chaque label n'utilisent que les données jusqu'à la barre courante ; chaque pari est net d'un coût réaliste par côté ; chaque fold est purged et sous embargo. Le harness, ses auto-tests et le panel multimarché complet sont réunis dans le project 09 de lopez-de-prado-work-review. L'explorateur de cette page est autonome : les chiffres du panel par instrument sont encodés dans le composant, de sorte que le mécanisme qu'il illustre se reproduit exactement à chaque chargement.

Citer

Références

Les sources primaires des prescriptions passées en revue ici :

À voir aussi

L'appareil de tests multiples sur lequel s'appuie le filtre de Deflated Sharpe de cette étude est passé en revue dans Backtest Overfitting & the Deflated Sharpe Ratio; le thème de la discipline de sélection est développé dans L'edge est dans le processus; et l'ensemble plus large des travaux se trouve dans Recherche.