ПочатиПочніть безкоштовно

Баєсівське налаштування гіперпараметрів із Hyperopt

У цьому прикладі ви налаштуєте та запустите процес баєсівської оптимізації гіперпараметрів за допомогою пакета Hyperopt (він уже імпортований для вас як hp). Ви визначите простір пошуку (подібно до налаштування сітки для grid search), потім створите цільову функцію. Нарешті запустите оптимізатор на 20 ітерацій.

Вам потрібно задати простір пошуку з такими значеннями:

  • max_depth з використанням розподілу quniform (між 2 і 10 з кроком 2)
  • learning_rate з використанням рівномірного розподілу (від 0.001 до 0.9)

Зверніть увагу, що для цієї вправи розмір вибірки та кількість ітерацій у hyperopt і GBM зменшено. Якщо ви випробовуєте цей метод самостійно на своєму комп'ютері, спробуйте ширший простір пошуку, більше спроб, більше складань перехресної перевірки та більший набір даних, щоб справді побачити його в дії!

Ця вправа є частиною курсу

Тюнінг гіперпараметрів у Python

Переглянути курс

Інструкції до вправи

  • Створіть словник space, використовуючи простір пошуку, описаний вище.
  • Налаштуйте цільову функцію з використанням класифікатора градієнтного підсилення.
  • Запустіть алгоритм на 20 оцінювань (просто використайте типовий рекомендований алгоритм із слайдів).

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Set up space dictionary with specified hyperparameters
space = {'max_depth': hp.____('max_depth', ____, ____, ____),'learning_rate': hp.____('learning_rate', ____,____)}

# Set up objective function
def objective(params):
    params = {'max_depth': int(params[____]),'learning_rate': params[____]}
    gbm_clf = ____(n_estimators=100, **params) 
    best_score = cross_val_score(gbm_clf, X_train, y_train, scoring='accuracy', cv=2, n_jobs=4).mean()
    loss = 1 - ____
    return ____

# Run the algorithm
best = fmin(fn=____,space=space, max_evals=____, rstate=np.random.default_rng(42), algo=tpe.suggest)
print(____)
Редагувати та запускати код