Validazione incrociata K-fold
Inizierai facendo pratica con la validazione incrociata K-fold, la più utilizzata.
I dati con cui lavorerai provengono dalla competizione Kaggle "Two sigma connect: rental listing inquiries". Il problema della competizione è una classificazione multiclasse degli annunci di affitto in 3 classi: interesse basso, medio e alto. Per avere prestazioni più rapide, lavorerai con un sottoinsieme di 1.000 osservazioni.
Devi implementare una strategia di validazione K-fold e osservare le dimensioni di ciascun fold ottenuto. Il DataFrame train è già disponibile nel tuo workspace.
Questo esercizio fa parte del corso
Vincere una competizione Kaggle con Python
Istruzioni dell'esercizio
- Crea un oggetto
KFoldcon 3 fold. - Itera su ciascuna suddivisione usando l'oggetto
kf. - Per ogni split seleziona i fold di training e testing usando
train_indexetest_index.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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