Настройка гиперпараметров с помощью RandomizedSearchCV
Как вы уже видели, GridSearchCV может быть вычислительно затратным — особенно при переборе большого пространства гиперпараметров. В таких случаях удобнее использовать RandomizedSearchCV, который проверяет фиксированное количество комбинаций гиперпараметров, выбранных из заданных вероятностных распределений.
Обучающая и тестовая выборки из diabetes_df уже загружены как X_train, X_test, y_train и y_test, где целевая переменная — "diabetes". Модель логистической регрессии создана и сохранена как logreg, а переменная KFold — как kf.
Вам предстоит задать диапазон гиперпараметров и применить RandomizedSearchCV, импортированный из sklearn.model_selection, чтобы найти оптимальные значения среди предложенных вариантов.
Это упражнение является частью курса
Обучение с учителем с помощью scikit-learn
Инструкции к упражнению
- Создайте
params: добавьте"l1"и"l2"в качестве значенийpenalty, задайтеCкак диапазон из50вещественных чисел от0.1до1.0, аclass_weight— равным либо"balanced", либо словарю{0: 0.8, 1: 0.2}. - Создайте объект Randomized Search CV, передав модель и параметры, и установив
cvравнымkf. - Обучите
logreg_cvна обучающих данных. - Выведите лучшие параметры и значение точности модели.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Create the parameter space
params = {"penalty": ["____", "____"],
"tol": np.linspace(0.0001, 1.0, 50),
"C": np.linspace(____, ____, ____),
"class_weight": ["____", {0:____, 1:____}]}
# Instantiate the RandomizedSearchCV object
logreg_cv = ____(____, ____, cv=____)
# Fit the data to the model
logreg_cv.____(____, ____)
# Print the tuned parameters and score
print("Tuned Logistic Regression Parameters: {}".format(____.____))
print("Tuned Logistic Regression Best Accuracy Score: {}".format(____.____))