K-fold Terstratifikasi
Seperti yang baru saja Anda lihat, distribusi variabel target antar fold cukup berbeda karena pemisahan acak. Ini tidak krusial untuk kompetisi yang satu ini, tetapi dapat menjadi masalah pada kompetisi klasifikasi dengan variabel target yang sangat tidak seimbang.
Untuk mengatasinya, mari terapkan strategi K-fold terstratifikasi dengan stratifikasi pada variabel target. DataFrame train sudah tersedia di ruang kerja Anda.
Latihan ini adalah bagian dari kursus
Memenangi Kompetisi Kaggle dengan Python
Petunjuk latihan
- Buat objek
StratifiedKFolddengan 3 fold dan pengacakan. - Lakukan iterasi pada setiap split menggunakan objek
str_kf. Stratifikasi didasarkan pada kolom "interest_level". - Untuk setiap split, pilih fold pelatihan dan pengujian menggunakan
train_indexdantest_index.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Import StratifiedKFold
from sklearn.model_selection import StratifiedKFold
# Create a StratifiedKFold object
str_kf = ____(n_splits=____, shuffle=____, random_state=123)
# Loop through each split
fold = 0
for train_index, test_index in ____.____(train, train['interest_level']):
# Obtain training and testing folds
cv_train, cv_test = ____.iloc[____], ____.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