時間 K 折
還記得「Store Item Demand Forecasting Challenge」嗎?你會拿到門市與商品的銷售資料,目標是預測未來的銷售量。
這是一個時間序列資料的競賽,因此應該使用時間 K 折交叉驗證。你的目標是建立這個交叉驗證策略,並確認它能如預期運作。
注意:train DataFrame 已經存在於你的工作區中,且 TimeSeriesSplit 已從 sklearn.model_selection 匯入。
本練習屬於課程
用 Python 拿下 Kaggle 競賽
練習說明
- 建立一個具有 3 個分割的
TimeSeriesSplit物件。 - 依據「date」欄位排序訓練資料,以套用時間 K 折。
- 使用
time_kfold物件迴圈走訪每個時間分割。 - 對於每個分割,使用
train_index與test_index選出訓練與測試折。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# 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