Das RandomizedSearchCV-Objekt
Genau wie die GridSearchCV-Bibliothek von Scikit-Learn bietet RandomizedSearchCV viele hilfreiche Funktionen, um eine Random Search effizient durchzuführen. Du wirst ein RandomizedSearchCV-Objekt erstellen und die kleine Anpassung gegenüber dem GridSearchCV-Objekt vornehmen.
Die gewünschten Optionen sind:
- Ein Standard-Gradient-Boosting-Classifier (Estimator)
- 5-fache Kreuzvalidierung
- Verwende Accuracy zur Bewertung der Modelle
- Nutze 4 Kerne für parallele Verarbeitung
- Sorge dafür, dass das beste Modell erneut trainiert (refit) wird und Trainingsscores zurückgegeben werden
- Ziehe zufällig 10 Modellkonfigurationen
Das Hyperparameterraster sollte learning_rate (150 Werte zwischen 0,1 und 2) und min_samples_leaf (alle Werte zwischen einschließlich 20 und 64) enthalten.
Dir stehen die Datensätze X_train und y_train zur Verfügung.
Diese Übung ist Teil des Kurses
Hyperparameter-Tuning in Python
Anleitung zur Übung
- Erstelle ein Parameter-Raster wie oben beschrieben.
- Erstelle ein
RandomizedSearchCV-Objekt wie oben skizziert. - Fitte das
RandomizedSearchCV-Objekt auf die Trainingsdaten. - Gib die vom Modellierungsprozess gewählten Werte für beide Hyperparameter aus.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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_['____'])