Mouangue and Cazenave search 1,072 engineered financial features for a small linear model. Their Monte Carlo tree search (MCTS) builds a subset one feature at a time, fits ordinary least squares, and rewards validation R². It beats Lasso while using far fewer variables. That is an interesting result. It is not, however, a return forecast.
Tree search buys sparse, unshrunk spreads
Lasso adds an L1 penalty: it selects variables and shrinks their coefficients. The proposed L0 search instead chooses a subset, then fits its coefficients without shrinkage. That matters when correlated variables form a spread: the paper's highlighted model gives a five-day VIX mean a coefficient of −0.0621 and VIX lag five +0.0513. Shrinking both toward zero can erase the contrast.
Each search path may add an unused feature or stop. A Gibbs policy balances learned action weights with a relevance-minus-redundancy heuristic. Terminal candidates are ranked first by validation R² rounded to three decimals, then by fewer features, then by lower maximum variance inflation factor. That lexicographic rounding is not decoration: within a 0.001 R² tie, sparsity wins.
| Model | Features / run | Seconds / run | Mean individual R² | Ensemble R² |
|---|---|---|---|---|
| Ridge | 1072 | <1 | 0.5250 | — |
| Lasso | 60 | <1 | 0.6313 | — |
| Elastic Net | 55 | <1 | 0.6243 | — |
| Greedy L0 | 5 | 17.1 | 0.2489 | — |
| GNRPA fixed | 60 | 52.9 | 0.6428 | 0.6855 |
| GNRPA tuned | 15 | 106.9 | 0.6648 | 0.6908 |
| GNRPA stop | 18.6 | 1671.6 | 0.6682 | 0.6961 |
A rolling week is mostly yesterday by construction
The timing issue is easiest to see under a deliberately simple reference model. Let daily returns be independent, zero mean, and equal variance, and define Yₜ = rₜ + … + rₜ₋₄. At the end of day t−1, four of those five returns are already known. Their sum accounts for 4/5 of the target's variance. The unresolved same-day return accounts for 1/5. Past returns still forecast none of that new component under the iid assumption.
def rolling_target_shares(window):
if window < 1 or int(window) != window:
raise ValueError("window must be a positive integer")
return {
"known_before_close": (window - 1) / window,
"same_day": 1 / window,
"genuine_forecast": 0.0,
}This page runs the TypeScript version. The calculation is an analytic iid timing audit, not a reconstruction of the paper's proprietary design matrix. It does not claim the authors fed the four-return partial sum directly to the model. It shows why a high R² against an overlapping rolling target cannot be read as five-day-ahead forecast skill.
Out-of-sample is not the same as ahead-of-time
The post-2024 window is untouched by feature search and Optuna tuning, so the comparison between methods is genuinely out of sample. But out of sample asks whether a fitted relationship transfers to unseen rows. Ahead of time asks whether every input existed when a forecast would have been issued. A row can satisfy the first condition and fail the second.
What to run next
For a forecasting claim, shift the target forward: use information available at day t to predict returns from t+1through t+5. Timestamp macro releases by publication time, lag same-close market variables, and compare MCTS with Lasso over several rolling test windows and indices. Report subset stability as well as R²; the current paper's 12-run stopping ensemble uses 59 unique variables, even though one run averages 18.6.
The mechanism remains worth exploring. A small from-scratch linear regression makes coefficient shrinkage, correlated spreads, and timing alignment visible before a combinatorial search obscures them. The next decisive experiment is not a bigger search budget; it is the same search with a genuinely future target.
References
- C. Mouangue and T. Cazenave (2026). L0 Feature Selection via Monte Carlo Tree Search in High-Dimensional Financial Regression. ICAIF '26 / arXiv:2610.13574
- R. Tibshirani (1996). Regression Shrinkage and Selection via the Lasso. Journal of the Royal Statistical Society: Series B 58(1)
- G. C. Cawley and N. L. C. Talbot (2010). On Over-fitting in Model Selection and Subsequent Selection Bias in Performance Evaluation. Journal of Machine Learning Research 11