LoslegenKostenlos loslegen

Alles zusammenführen

Du bist gerade zu einem Startup für Arrhythmie-Erkennung gestoßen und willst ein Modell auf dem Arrhythmie-Datensatz arrh trainieren. Du hast beobachtet, dass Random Forests bei Kaggle-Wettbewerben oft sehr gut abschneiden, also möchtest du das mit einer maximalen Tiefe von 2, 5 oder 10 per Grid Search ausprobieren. Außerdem fällt dir auf, dass der Datensatz eine hohe Dimensionalität hat, daher willst du den Effekt einer Merkmalsauswahlmethode berücksichtigen.

Damit du nicht versehentlich überanpasst, hast du deine Daten bereits aufgeteilt. Du verwendest X_train und y_train für die Grid Search und X_test und y_test, um zu entscheiden, ob Merkmalsauswahl hilft. Alle vier Folds des Datensatzes sind in deiner Umgebung vorab geladen. Du hast außerdem Zugriff auf GridSearchCV(), train_test_split(), SelectKBest(), chi2() und RandomForestClassifier als rfc.

Diese Übung ist Teil des Kurses

Machine-Learning-Workflows in Python entwerfen

Kurs anzeigen

Anleitung zur Übung

  • Verwende Grid Search, um mit einer maximalen Tiefe von 2, 5 und 10 für RandomForestClassifier zu experimentieren, und speichere die leistungsstärkste Parametereinstellung.
  • Fitte den Schätzer jetzt erneut mit der oben ermittelten besten Anzahl an Bäumen.
  • Wende den Feature-Selektor SelectKBest mit der Bewertungsfunktion chi2 an und fitte den Klassifikator erneut.

Interaktive Übung

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

# Find the best value for max_depth among values 2, 5 and 10
grid_search = GridSearchCV(
  ____(random_state=1), param_grid=____)
best_value = grid_search.____(
  ____, ____).best_params_['max_depth']

# Using the best value from above, fit a random forest
clf = rfc(
  random_state=1, ____=best_value).____(X_train, y_train)

# Apply SelectKBest with chi2 and pick top 100 features
vt = SelectKBest(____, k=____).____(X_train, y_train)

# Create a new dataset only containing the selected features
X_train_reduced = ____.transform(____)
Code bearbeiten und ausführen