El objeto RandomizedSearchCV
Al igual que la librería GridSearchCV de Scikit Learn, RandomizedSearchCV ofrece muchas funciones útiles para llevar a cabo un random search de forma eficiente. Vas a crear un objeto RandomizedSearchCV, haciendo el pequeño ajuste necesario respecto al objeto GridSearchCV.
Las opciones deseadas son:
- Un estimador por defecto Gradient Boosting Classifier
- Validación cruzada de 5 pliegues
- Usar accuracy para evaluar los modelos
- Usar 4 núcleos para el procesamiento en paralelo
- Asegurarte de reajustar (refit) el mejor modelo y devolver las puntuaciones de entrenamiento
- Muestrear aleatoriamente 10 modelos
La rejilla de hiperparámetros debe ser para learning_rate (150 valores entre 0.1 y 2) y min_samples_leaf (todos los valores entre 20 y 64, ambos incluidos).
Tendrás disponibles los conjuntos X_train y y_train.
Este ejercicio forma parte del curso
Ajuste de hiperparámetros en Python
Instrucciones del ejercicio
- Crea una rejilla de hiperparámetros tal y como se especifica arriba.
- Crea un objeto
RandomizedSearchCVcomo se describe en el contexto anterior. - Ajusta el objeto
RandomizedSearchCVa los datos de entrenamiento. - Imprime los valores elegidos por el proceso de modelado para ambos hiperparámetros.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Create the parameter grid
param_grid = {'learning_rate': np.linspace(____,____,150), 'min_samples_leaf': list(range(____,65))}
# Create a random search object
random_GBM_class = ____(
estimator = ____,
____ = param_grid,
____ = 10,
scoring='____', n_jobs=____, cv = ____, refit=____, return_train_score = ____)
# Fit to the training data
random_GBM_class.fit(____, ____)
# Print the values used for both hyperparameters
print(random_GBM_class.____['param_learning_rate'])
print(random_GBM_class.cv_results_['____'])