始める無料で始める

シャッフルなしのクロスバリデーション

次に、ブロック型のクロスバリデーション(全データポイントをシャッフルしない)でモデルの学習を再実行しましょう。この場合、隣接する時点のデータは互いに近いまま保たれます。各クロスバリデーションループにおけるモデルの予測は、どのように見えると思いますか?

ワークスペースには線形回帰の model オブジェクトのインスタンスが用意されています。配列 Xy(学習データ)も利用できます。

この演習はコースの一部です

Pythonで学ぶMachine Learningによる時系列データ解析

コースを見る

演習の手順

  • 今回はシャッフルなしで分割数を 10 にした KFold クロスバリデーションを使い、別のクロスバリデーションオブジェクトを作成します。
  • このオブジェクトを反復処理し、学習用インデックスでモデルを学習し、テスト用インデックスで予測を生成します。
  • 用意されたヘルパー関数(visualize_predictions())を使って、CV 各分割にわたる予測を可視化します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Create KFold cross-validation object
from sklearn.model_selection import KFold
cv = ____(n_splits=____, shuffle=____)

# Iterate through CV splits
results = []
for tr, tt in cv.split(X, y):
    # Fit the model on training data
    model.fit(____)
    
    # Generate predictions on the test data and collect
    prediction = model.predict(____)
    results.append((prediction, tt))
    
# Custom function to quickly visualize predictions
visualize_predictions(results)
コードを編集して実行