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 merupakan bagian dari kursus
Memenangi Kompetisi Kaggle dengan Python
Instruksi 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 langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# 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