開始使用免費開始

時間 K 折

還記得「Store Item Demand Forecasting Challenge」嗎?你會拿到門市與商品的銷售資料,目標是預測未來的銷售量。

這是一個時間序列資料的競賽,因此應該使用時間 K 折交叉驗證。你的目標是建立這個交叉驗證策略,並確認它能如預期運作。

注意:train DataFrame 已經存在於你的工作區中,且 TimeSeriesSplit 已從 sklearn.model_selection 匯入。

本練習屬於課程

用 Python 拿下 Kaggle 競賽

檢視課程

練習說明

  • 建立一個具有 3 個分割的 TimeSeriesSplit 物件。
  • 依據「date」欄位排序訓練資料,以套用時間 K 折。
  • 使用 time_kfold 物件迴圈走訪每個時間分割。
  • 對於每個分割,使用 train_indextest_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
編輯並執行程式碼