Het RandomizedSearchCV-object
Net als de GridSearchCV-bibliotheek van Scikit Learn biedt RandomizedSearchCV veel handige functies om een random search efficiënt uit te voeren. Je gaat een RandomizedSearchCV-object maken, met de kleine aanpassing die nodig is ten opzichte van het GridSearchCV-object.
De gewenste opties zijn:
- Een standaard Gradient Boosting Classifier-Estimator
- 5-voudige cross-validatie
- Gebruik accuracy om de modellen te scoren
- Gebruik 4 cores voor parallelle verwerking
- Zorg dat je het beste model opnieuw fit en trainingscores retourneert
- Trek willekeurig 10 modellen
De hyperparameter-grid moet zijn voor learning_rate (150 waarden tussen 0.1 en 2) en min_samples_leaf (alle waarden tussen en met 20 en 64).
Je hebt de gegevenssets X_train & y_train beschikbaar.
Deze oefening maakt deel uit van de cursus
Hyperparameter Tuning in Python
Oefeninstructies
- Maak een parametergrid zoals hierboven in de context gespecificeerd.
- Maak een
RandomizedSearchCV-object zoals hierboven in de context beschreven. - Fit het
RandomizedSearchCV-object op de trainingsdata. - Print de waarden die het modelleerproces voor beide hyperparameters heeft gekozen.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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_['____'])