ÎncepețiÎncepe gratuit

K-fold stratificat

Așa cum ai observat, distribuția variabilei țintă diferă destul de mult între folduri din cauza împărțirilor aleatoare. Pentru această competiție în particular nu este o problemă critică, însă poate deveni una în competițiile de clasificare cu o variabilă țintă puternic dezechilibrată.

Pentru a rezolva această situație, hai să implementăm strategia K-fold stratificat, cu stratificarea pe variabila țintă. DataFrame-ul train este deja disponibil în spațiul tău de lucru.

Acest exercițiu face parte din cursul

Câștigarea unei competiții Kaggle în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Creează un obiect StratifiedKFold cu 3 folduri și cu amestecare activată.
  • Iterează peste fiecare împărțire folosind obiectul str_kf. Stratificarea se bazează pe coloana "interest_level".
  • Pentru fiecare împărțire, selectează foldurile de antrenament și testare folosind train_index și test_index.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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
Editează și rulează codul