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) - Перенавчіть (refit) найкращу модель і повертайте тренувальні бали
- Виберіть лише 5 моделей для ефективності (
n_iter)
Набори даних X_train і y_train вже завантажено для вас.
Пам'ятайте: щоб отримати вибрані гіперпараметри, зверніться до cv_results_, де для кожного гіперпараметра є окрема колонка. Наприклад, колонка для гіперпараметра criterion має назву param_criterion.
Ця вправа є частиною курсу
Тюнінг гіперпараметрів у Python
Інструкції до вправи
- Створіть сітку гіперпараметрів відповідно до вимог вище.
- Створіть обʼєкт
RandomizedSearchCV, як описано вище. - Навчіть (
fit) обʼєкт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_[____])