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_indexとtest_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