ComenzarEmpieza gratis

RandomSearchCV en Scikit Learn

Vamos a practicar cómo construir un objeto RandomizedSearchCV usando Scikit Learn.

La cuadrícula de hiperparámetros debe incluir max_depth (todos los valores entre 5 y 25, ambos inclusive) y max_features ('auto' y 'sqrt').

Las opciones deseadas para el objeto RandomizedSearchCV son:

  • Un estimador RandomForestClassifier con n_estimators igual a 80.
  • Validación cruzada de 3 particiones (cv)
  • Usar roc_auc para evaluar los modelos
  • Usar 4 núcleos para el procesamiento en paralelo (n_jobs)
  • Asegúrate de reajustar el mejor modelo y devolver las puntuaciones de entrenamiento
  • Muestrear solo 5 combinaciones por eficiencia (n_iter)

Los conjuntos de datos X_train y y_train ya están cargados.

Recuerda que, para extraer los hiperparámetros elegidos, se encuentran en cv_results_ con una columna por hiperparámetro. Por ejemplo, la columna para el hiperparámetro criterion sería param_criterion.

Este ejercicio forma parte del curso

Ajuste de hiperparámetros en Python

Ver curso

Instrucciones del ejercicio

  • Crea una cuadrícula de hiperparámetros según lo especificado arriba.
  • Crea un objeto RandomizedSearchCV como se describe en el contexto anterior.
  • Ajusta el objeto RandomizedSearchCV a los datos de entrenamiento.
  • Indexa en el objeto cv_results_ para imprimir los valores elegidos por el proceso de modelado para ambos hiperparámetros (max_depth y max_features).

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# Create the parameter grid
param_grid = {'max_depth': list(range(____,26)), 'max_features': [____ , ____]} 

# Create a random search object
random_rf_class = RandomizedSearchCV(
    estimator = ____(n_estimators=____),
    param_distributions = ____, n_iter = ____,
    scoring=____, n_jobs=____, cv = ____, refit=____, return_train_score = ____ )

# Fit to the training data
____.fit(X_train, y_train)

# Print the values used for both hyperparameters
print(random_rf_class.cv_results_[____])
print(random_rf_class.cv_results_[____])
Editar y ejecutar código