Arbre de décision
- Données de séries temporelles ? → TimeSeriesSplit (ne mélangez jamais le temps !)
- Des groupes qui doivent rester ensemble ? → GroupKFold
- Classes déséquilibrées ? → StratifiedKFold
- Tabulaire par défaut → StratifiedKFold à 5 plis
Exemple TimeSeriesSplit
from sklearn.model_selection import TimeSeriesSplit
tscv = TimeSeriesSplit(n_splits=5)
for train_idx, val_idx in tscv.split(X):
X_train, X_val = X.iloc[train_idx], X.iloc[val_idx]
GroupKFold : éviter la fuite
Si vous avez des IDs utilisateur, patient ou magasin — utilisez toujours GroupKFold pour qu'une même entité n'apparaisse jamais à la fois en entraînement et en validation.