L'oggetto RandomizedSearchCV
Proprio come la libreria GridSearchCV di Scikit Learn, RandomizedSearchCV offre molte funzionalità utili per eseguire in modo efficiente una ricerca casuale. Creerai un oggetto RandomizedSearchCV, apportando il piccolo aggiustamento necessario rispetto all'oggetto GridSearchCV.
Le opzioni desiderate sono:
- Un Estimatore predefinito Gradient Boosting Classifier
- Cross validation a 5 fold
- Usa l'accuracy per valutare i modelli
- Usa 4 core per l'elaborazione in parallelo
- Assicurati di riadattare il modello migliore e restituire gli score di training
- Campiona casualmente 10 modelli
La griglia degli iperparametri deve includere learning_rate (150 valori tra 0.1 e 2) e min_samples_leaf (tutti i valori tra 20 e 64 inclusi).
Avrai a disposizione gli insiemi di dati X_train e y_train.
Questo esercizio fa parte del corso
Ottimizzazione degli iperparametri in Python
Istruzioni dell'esercizio
- Crea una griglia di parametri come specificato nel contesto sopra.
- Crea un oggetto
RandomizedSearchCVcome descritto nel contesto sopra. - Adatta (fit) l'oggetto
RandomizedSearchCVai dati di training. - Stampa i valori scelti dal processo di modellazione per entrambi gli iperparametri.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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_['____'])