НачатьНачать бесплатно

RandomizedSearchCV в Scikit Learn

Попрактикуемся в создании объекта RandomizedSearchCV с помощью Scikit Learn.

Сетка гиперпараметров должна включать max_depth (все значения от 5 до 25 включительно) и max_features ('auto' и 'sqrt').

Желаемые параметры объекта RandomizedSearchCV:

  • Оценщик RandomForestClassifier со значением n_estimators равным 80.
  • 3-кратная кросс-валидация (cv)
  • Использовать roc_auc для оценки моделей
  • Использовать 4 ядра для параллельной обработки (n_jobs)
  • Убедитесь, что лучшая модель дообучается и возвращаются оценки на обучающей выборке
  • Для эффективности выбирайте только 5 моделей (n_iter)

Наборы данных X_train и y_train уже загружены.

Помните: выбранные гиперпараметры извлекаются из cv_results_, где каждый гиперпараметр представлен отдельным столбцом. Например, столбец для гиперпараметра criterion будет называться param_criterion.

Это упражнение является частью курса

Подбор гиперпараметров в Python

Посмотреть курс

Инструкции к упражнению

  • Создайте сетку гиперпараметров в соответствии с описанием выше.
  • Создайте объект RandomizedSearchCV согласно описанию выше.
  • Обучите объект RandomizedSearchCV на обучающих данных.
  • Обратитесь к объекту cv_results_, чтобы вывести значения, выбранные в процессе моделирования для обоих гиперпараметров (max_depth и max_features).

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Create the parameter grid
param_grid = {'max_depth': list(range(____,26)), 'max_features': [____ , ____]} 

# Create a random search object
random_rf_class = RandomizedSearchCV(
    estimator = ____(n_estimators=____),
    param_distributions = ____, n_iter = ____,
    scoring=____, n_jobs=____, cv = ____, refit=____, return_train_score = ____ )

# Fit to the training data
____.fit(X_train, y_train)

# Print the values used for both hyperparameters
print(random_rf_class.cv_results_[____])
print(random_rf_class.cv_results_[____])
Редактировать и запускать код