LoslegenKostenlos loslegen

Stratifiziertes K-Fold

Wie du gerade gesehen hast, ist die Verteilung der Zielvariable in den Folds durch die zufälligen Splits ziemlich unterschiedlich. Für diesen speziellen Wettbewerb ist das nicht entscheidend, kann aber bei Klassifikationswettbewerben mit stark unausgewogener Zielvariable problematisch sein.

Um das zu vermeiden, implementieren wir eine stratifizierte K-Fold-Strategie mit Stratifikation auf der Zielvariable. Der DataFrame train ist bereits in deinem Workspace verfügbar.

Diese Übung ist Teil des Kurses

Eine Kaggle-Competition in Python gewinnen

Kurs anzeigen

Anleitung zur Übung

  • Erstelle ein StratifiedKFold-Objekt mit 3 Folds und Shuffle.
  • Iteriere über jeden Split mit dem Objekt str_kf. Die Stratifikation basiert auf der Spalte "interest_level".
  • Wähle für jeden Split die Trainings- und Test-Folds mit train_index und test_index aus.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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
Code bearbeiten und ausführen