Chronological Lasso validation
tscv = TimeSeriesSplit(n_splits=5)
cv_mse = [
np.mean([
mean_squared_error(
y_train[val],
Lasso(alpha=l, max_iter=10000)
.fit(X_lasso_train_scaled[tr], y_train[tr])
.predict(X_lasso_train_scaled[val])
)
for tr, val in tscv.split(X_lasso_train_scaled)
])
for l in lambdas
]The notebook uses expanding chronological folds rather than shuffling observations, reducing look-ahead bias during Lasso tuning.

