Validation croisée K-fold temporelle
Vous vous souvenez du « Store Item Demand Forecasting Challenge », où l'on vous donne des données de ventes par magasin et par article, et vous devez prévoir les ventes futures?
Il s'agit d'une compétition avec des séries chronologiques. Vous devez donc appliquer une validation croisée K-fold temporelle. Votre objectif est de créer cette stratégie de validation et de vérifier qu'elle fonctionne comme prévu.
Remarquez que le DataFrame train est déjà disponible dans votre espace de travail, et que TimeSeriesSplit a été importé depuis sklearn.model_selection.
Cette activité fait partie du cours
Remporter une compétition Kaggle en Python
Instructions de l’exercice
- Créez un objet
TimeSeriesSplitavec 3 volets (splits). - Triez les données d'entraînement par la colonne « date » pour appliquer le K-fold temporel.
- Parcourez chaque division temporelle à l'aide de l'objet
time_kfold. - Pour chaque division, sélectionnez les volets d'entraînement et de test en utilisant
train_indexettest_index.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Create TimeSeriesSplit object
time_kfold = TimeSeriesSplit(n_splits=____)
# Sort train data by date
train = train.sort_values(____)
# Iterate through each split
fold = 0
for train_index, test_index in ____.____(____):
cv_train, cv_test = ____.____[____], ____.____[____]
print('Fold :', fold)
print('Train date range: from {} to {}'.format(cv_train.date.min(), cv_train.date.max()))
print('Test date range: from {} to {}\n'.format(cv_test.date.min(), cv_test.date.max()))
fold += 1