始める無料で始める

K-fold 交差検証

最も一般的に使われる K-fold 交差検証を、実際に手を動かして体験していきます。

扱うデータは Kaggle コンペティション「Two sigma connect: rental listing inquiries」のものです。課題は賃貸物件の掲載を、low interest・medium interest・high interest の 3 クラスに分類する多クラス分類です。高速に処理するため、1,000 行のサブサンプルを使用します。

K-fold の検証戦略を実装し、得られた各フォールドのサイズを確認してください。train DataFrame はすでに作業スペースに用意されています。

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

Pythonで挑むKaggleコンペティション

コースを見る

演習の手順

  • 3 分割の KFold オブジェクトを作成します。
  • kf オブジェクトを使って各分割をループ処理します。
  • 各分割について、train_indextest_index を使って学習用フォールドとテスト用フォールドを選択します。

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

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

# Import KFold
from sklearn.model_selection import KFold

# Create a KFold object
kf = ____(n_splits=____, shuffle=True, random_state=123)

# Loop through each split
fold = 0
for train_index, test_index in ____.____(train):
    # Obtain training and testing folds
    cv_train, cv_test = train.iloc[____], train.iloc[____]
    print('Fold: {}'.format(fold))
    print('CV train shape: {}'.format(cv_train.shape))
    print('Medium interest listings in CV train: {}\n'.format(sum(cv_train.interest_level == 'medium')))
    fold += 1
コードを編集して実行