Time K-fold
Pamiętasz konkurs „Store Item Demand Forecasting Challenge", w którym masz dostęp do danych sprzedaży w sklepach i musisz prognozować przyszłą sprzedaż?
To konkurs oparty na danych szeregów czasowych, dlatego należy zastosować czasową walidację krzyżową K-fold. Twoim zadaniem jest stworzenie tej strategii walidacji i sprawdzenie, czy działa poprawnie.
Zwróć uwagę, że DataFrame train jest już dostępny w twoim środowisku pracy, a klasa TimeSeriesSplit została zaimportowana z sklearn.model_selection.
To ćwiczenie jest częścią kursu
Zwycięstwo w konkursie Kaggle w Pythonie
Instrukcje do ćwiczenia
- Utwórz obiekt
TimeSeriesSplitz 3 podziałami. - Posortuj dane treningowe według kolumny "date", aby zastosować czasowy K-fold.
- Iteruj po każdym podziale czasowym, używając obiektu
time_kfold. - Dla każdego podziału wybierz foldy treningowe i testowe, korzystając z
train_indexitest_index.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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