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_[____])