RandomizedSearchCV

Walidacja modeli w Pythonie

Kasey Jones

Data Scientist

Przeszukiwanie siatki hiperparametrów

Wybierając wartości wielu hiperparametrów, możliwe kombinacje tworzą siatkę zwaną przestrzenią hiperparametrów.

Walidacja modeli w Pythonie

Przeszukiwanie siatki – ciąg dalszy

Zalety:

  • Testuje każdą możliwą kombinację

Wady:

  • Dodatkowe hiperparametry wydłużają czas uczenia wykładniczo
Walidacja modeli w Pythonie

Lepsze metody

Walidacja modeli w Pythonie

Losowe przeszukiwanie

from sklearn.model_selection import RandomizedSearchCV

random_search = RandomizedSearchCV()

Rozkład parametrów:

param_dist = {"max_depth": [4, 6, 8, None],
              "max_features": range(2, 11),
              "min_samples_split": range(2, 11)}
Walidacja modeli w Pythonie

Parametry losowego przeszukiwania

Parametry:

  • estimator: używany model
  • param_distributions: słownik z hiperparametrami i ich wartościami
  • n_iter: liczba iteracji
  • scoring: metoda oceny
Walidacja modeli w Pythonie

Ustawianie parametrów RandomizedSearchCV

param_dist = {"max_depth": [4, 6, 8, None],
              "max_features": range(2, 11),
              "min_samples_split": range(2, 11)}
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import make_scorer, mean_absolute_error

rfr = RandomForestRegressor(n_estimators=20, random_state=1111)
scorer = make_scorer(mean_absolute_error)
Walidacja modeli w Pythonie

Implementacja RandomizedSearchCV

Konfiguracja losowego przeszukiwania:

random_search =\
    RandomizedSearchCV(estimator=rfr,
                       param_distributions=param_dist,
                       n_iter=40,
                       cv=5)
  • Strojenie hiperparametrów wymaga znajomości walidacji modelu
  • Walidacja modelu umożliwia porównywanie modeli i zestawów parametrów
Walidacja modeli w Pythonie

Implementacja RandomizedSearchCV

Konfiguracja losowego przeszukiwania:

random_search =\
    RandomizedSearchCV(estimator=rfr,
                       param_distributions=param_dist,
                       n_iter=40,
                       cv=5)

Uruchomienie losowego przeszukiwania:

random_search.fit(X, y)
Walidacja modeli w Pythonie

Przyjrzyjmy się przykładom!

Walidacja modeli w Pythonie

Preparing Video For Download...