Ajuste de hiperparámetros con RandomizedSearchCV
Como has visto, GridSearchCV
puede ser costoso desde el punto de vista informático, sobre todo si buscas en un espacio de hiperparámetros grande. En este caso, puedes utilizar RandomizedSearchCV
, que prueba un número fijo de configuraciones de hiperparámetros a partir de distribuciones de probabilidad especificadas.
Se han precargado los conjuntos de entrenamiento y prueba de diabetes_df
como X_train
, X_test
, y_train
e y_test
, donde el objetivo es "diabetes"
. Se ha creado un modelo de regresión logística y se ha almacenado como logreg
, así como una variable KFold
almacenada como kf
.
Definirás una serie de hiperparámetros y utilizarás RandomizedSearchCV
, que se ha importado de sklearn.model_selection
, para buscar hiperparámetros óptimos a partir de estas opciones.
Este ejercicio forma parte del curso
Aprendizaje supervisado con scikit-learn
Instrucciones del ejercicio
- Crea
params
, añadiendo"l1"
y"l2"
como valores depenalty
, estableciendoC
en un rango de valores flotantes de50
entre0.1
y1.0
, yclass_weight
en"balanced"
o en un diccionario que contenga0:0.8, 1:0.2
. - Crea el objeto RandomizedSearchCV, pasándole el modelo y los parámetros, y estableciendo
cv
igual akf
. - Ajusta
logreg_cv
a los datos de entrenamiento. - Imprime los mejores parámetros del modelo y la puntuación de precisión.
Ejercicio interactivo práctico
Prueba este ejercicio completando el código de muestra.
# 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(____.____))