Ajuste de hiperparâmetros com RandomizedSearchCV
Como você viu, GridSearchCV
pode ser caro do ponto de vista computacional, principalmente se você estiver pesquisando em um grande espaço de hiperparâmetros. Nesse caso, você pode usar RandomizedSearchCV
, que testa um número fixo de configurações de hiperparâmetros a partir de distribuições de probabilidade especificadas.
Os conjuntos de treinamento e teste de diabetes_df
foram pré-carregados para você como X_train
, X_test
, y_train
e y_test
, sendo que a variável dependente é "diabetes"
. Um modelo de regressão logística foi criado e armazenado como logreg
, além de uma variável KFold
armazenada como kf
.
Você deve definir um intervalo de hiperparâmetros e usar RandomizedSearchCV
, que foi importado de sklearn.model_selection
, para procurar hiperparâmetros ideais com base nessas opções.
Este exercício faz parte do curso
Aprendizado Supervisionado com o scikit-learn
Instruções de exercício
- Crie
params
, adicionando"l1"
e"l2"
como valores depenalty
, definindoC
como um intervalo com50
floats entre0.1
e1.0
, eclass_weight
como"balanced"
ou como um dicionário contendo0:0.8, 1:0.2
. - Crie o objeto Randomized Search CV, passando o modelo e os parâmetros e definindo
cv
igual akf
. - Ajuste
logreg_cv
aos dados de treinamento. - Imprima os melhores parâmetros e a pontuação de precisão do modelo.
Exercício interativo prático
Experimente este exercício preenchendo este código de exemplo.
# 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(____.____))