RandomSearchCV v Scikit Learn
Pojďme si procvičit sestavení objektu RandomizedSearchCV pomocí Scikit Learn.
Mřížka hyperparametrů by měla zahrnovat max_depth (všechny hodnoty od 5 do 25 včetně) a max_features ('auto' a 'sqrt').
Požadované nastavení objektu RandomizedSearchCV:
- Estimátor
RandomForestClassifiers hodnotoun_estimators80. - 3-násobná křížová validace (
cv) - Pro hodnocení modelů použij
roc_auc - Pro paralelní zpracování použij 4 jádra (
n_jobs) - Zajisti přetrénování nejlepšího modelu a vrácení trénovacích skóre
- Pro efektivitu vzorkuj pouze 5 modelů (
n_iter)
Datasets X_train a y_train jsou již načteny.
Pamatuj, že zvolené hyperparametry najdeš v cv_results_ – každý hyperparametr má vlastní sloupec. Například sloupec pro hyperparametr criterion se jmenuje param_criterion.
Toto cvičení je součástí kurzu
Hyperparameter Tuning in Python
Pokyny k cvičení
- Vytvoř mřížku hyperparametrů podle zadání výše.
- Vytvoř objekt
RandomizedSearchCVpodle zadání výše. - Napoj objekt
RandomizedSearchCVna trénovací data. - Přistup k objektu
cv_results_a vypiš hodnoty zvolené procesem modelování pro oba hyperparametry (max_depthamax_features).
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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_[____])