RandomSearchCV w Scikit Learn
Przećwicz tworzenie obiektu RandomizedSearchCV przy użyciu Scikit Learn.
Siatka hiperparametrów powinna obejmować max_depth (wszystkie wartości od 5 do 25 włącznie) oraz max_features ('auto' i 'sqrt').
Obiekt RandomizedSearchCV skonfiguruj z następującymi opcjami:
- Estymator
RandomForestClassifierzn_estimatorsrównym 80. - 3-krotna walidacja krzyżowa (
cv) - Użyj
roc_aucdo oceny modeli - Użyj 4 rdzeni do przetwarzania równoległego (
n_jobs) - Upewnij się, że najlepszy model zostanie ponownie dopasowany, a wyniki trenowania zwrócone
- Próbkuj tylko 5 modeli dla zwiększenia wydajności (
n_iter)
Zbiory danych X_train i y_train są już wczytane.
Pamiętaj: wybrane hiperparametry znajdziesz w cv_results_ – każdy hiperparametr ma osobną kolumnę. Na przykład kolumna dla hiperparametru criterion nosi nazwę param_criterion.
To ćwiczenie jest częścią kursu
Strojenie hiperparametrów w Pythonie
Instrukcje do ćwiczenia
- Utwórz siatkę hiperparametrów zgodnie ze specyfikacją podaną powyżej.
- Utwórz obiekt
RandomizedSearchCVzgodnie z opisem powyżej. - Dopasuj obiekt
RandomizedSearchCVdo danych treningowych. - Odwołaj się do obiektu
cv_results_, aby wyświetlić wartości wybrane przez proces modelowania dla obu hiperparametrów (max_depthimax_features).
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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_[____])