MulaiMulai sekarang secara gratis

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

Lihat Kursus

Petunjuk latihan

  • Buat objek StratifiedKFold dengan 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_index dan test_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
Edit dan Jalankan Kode