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 do exercício
- Crie
params, adicionando"l1"e"l2"como valores depenalty, definindoCcomo um intervalo com50floats entre0.1e1.0, eclass_weightcomo"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
cvigual akf. - Ajuste
logreg_cvaos 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 completando 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(____.____))