Zacznij terazZacznij za darmo

Składamy wszystko razem

Właśnie dołączyłeś do startupu zajmującego się wykrywaniem arytmii i chcesz wytrenować model na zbiorze danych arrh. Zauważasz, że lasy losowe wygrywają wiele konkursów na Kaggle, dlatego chcesz je wypróbować z maksymalną głębokością 2, 5 lub 10, używając przeszukiwania siatki hiperparametrów. Zwracasz też uwagę, że wymiarowość zbioru danych jest dość wysoka, więc chcesz zbadać wpływ metody selekcji cech.

Aby uniknąć przypadkowego przeuczenia, dane zostały już podzielone. Do przeszukiwania siatki użyjesz X_train i y_train, a do oceny wpływu selekcji cech – X_test i y_test. Wszystkie cztery podzbiory danych są wczytane do środowiska. Masz też dostęp do GridSearchCV(), train_test_split(), SelectKBest(), chi2() oraz RandomForestClassifier jako rfc.

To ćwiczenie jest częścią kursu

Projektowanie przepływów pracy uczenia maszynowego w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Użyj przeszukiwania siatki, aby przetestować maksymalną głębokość 2, 5 i 10 dla RandomForestClassifier, a następnie zapisz najlepsze ustawienie parametrów.
  • Ponownie dopasuj estymator, używając najlepszej liczby estymatorów wyznaczonej powyżej.
  • Zastosuj selektor cech SelectKBest z funkcją oceniającą chi2 i ponownie dopasuj klasyfikator.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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(____)
Edytuj i uruchom kod