RandomizedSearchCV

Валідація моделей у Python

Kasey Jones

Data Scientist

Пошук по сітці гіперпараметрів

Коли обираєте значення для кількох гіперпараметрів, можливі варіанти утворюють сітку. Цю сітку називають простором гіперпараметрів.

Валідація моделей у Python

Пошук по сітці: далі

Переваги:

  • Перевіряє всі можливі комбінації

Недоліки:

  • Додаткові гіперпараметри експоненційно збільшують час навчання
Валідація моделей у Python

Кращі методи

Валідація моделей у Python

Випадковий пошук

from sklearn.model_selection import RandomizedSearchCV

random_search = RandomizedSearchCV()

Розподіл параметрів:

param_dist = {"max_depth": [4, 6, 8, None],
              "max_features": range(2, 11),
              "min_samples_split": range(2, 11)}
Валідація моделей у Python

Параметри випадкового пошуку

Параметри:

  • estimator: модель для використання
  • param_distributions: словник із гіперпараметрами та можливими значеннями
  • n_iter: кількість ітерацій
  • scoring: метод оцінювання
Валідація моделей у Python

Налаштування параметрів 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)
Валідація моделей у Python

Реалізація RandomizedSearchCV

Налаштування випадкового пошуку:

random_search =\
    RandomizedSearchCV(estimator=rfr,
                       param_distributions=param_dist,
                       n_iter=40,
                       cv=5)
  • Неможливо тюнити гіперпараметри без розуміння валідації моделі
  • Валідація моделі дає змогу порівнювати кілька моделей і наборів параметрів
Валідація моделей у Python

Реалізація RandomizedSearchCV

Налаштування випадкового пошуку:

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

Завершіть випадковий пошук:

random_search.fit(X, y)
Валідація моделей у Python

Розгляньмо кілька прикладів!

Валідація моделей у Python

Preparing Video For Download...