Porozumění výstupu grid search

Hyperparameter Tuning in Python

Alex Scriven

Data Scientist

Analýza výstupu

Analyzujme výstupy GridSearchCV.

Tři skupiny vlastností GridSearchCV:

  • Protokol výsledků
    • cv_results_
  • Nejlepší výsledky
    • best_index_, best_params_ & best_score_
  • „Doplňkové informace"
    • scorer_, n_splits_ & refit_time_
Hyperparameter Tuning in Python

Přístup k vlastnostem objektu

 

K vlastnostem se přistupuje pomocí tečkové notace.

Například:

grid_search_object.property

Kde property je název požadované vlastnosti.

Hyperparameter Tuning in Python

Vlastnost .cv_results_

Vlastnost cv_results_:

Načtěte ji do DataFrame pro výpis a analýzu:

cv_results_df = pd.DataFrame(grid_rf_class.cv_results_)

print(cv_results_df.shape)

(12, 23)

  • 12 řádků odpovídá 12 čtvercům gridu, tedy 12 spuštěným modelům.
Hyperparameter Tuning in Python

Sloupce 'time' v .cv_results_

Sloupce time udávají čas potřebný k natrénování (a vyhodnocení) modelu.

Pamatujte, že jsme použili 5-násobnou cross-validaci – model byl spuštěn 5krát a byl uložen průměr a směrodatná odchylka časů v sekundách.

sloupce time

Hyperparameter Tuning in Python

Sloupce 'param_' v .cv_results_

 

Sloupce param_ uchovávají parametry testované v daném řádku – jeden sloupec na parametr.

sloupce param

Hyperparameter Tuning in Python

Sloupec 'param' v .cv_results_

Sloupec params obsahuje slovník všech parametrů:

pd.set_option("display.max_colwidth", -1)
print(cv_results_df.loc[:, "params"])

sloupec params

Hyperparameter Tuning in Python

Sloupce 'test_score' v .cv_results_

 

Sloupce test_score obsahují skóre na testovací sadě pro každý cross-fold a souhrnné statistiky:

test score

Hyperparameter Tuning in Python

Sloupec 'rank_test_score' v .cv_results_

 

Sloupec rank seřazuje mean_test_score od nejlepšího k nejhoršímu:

rank test score

Hyperparameter Tuning in Python

Extrakce nejlepšího řádku

 

Nejlepší řádek gridu lze snadno vybrat z cv_results_ pomocí sloupce rank_test_score

best_row = cv_results_df[cv_results_df["rank_test_score"] == 1]
print(best_row)

nejlepší řádek

Hyperparameter Tuning in Python

Sloupce 'train_score' v .cv_results_

Sloupce test_score se opakují pro training_scores.

Důležité poznámky:

  • return_train_score musí být True, aby byly zahrnuty sloupce trénovacích skóre.

  • Pro trénovací skóre neexistuje sloupec pořadí – zajímá nás pouze výkon na testovací sadě.

Hyperparameter Tuning in Python

Nejlepší čtverec gridu

 

Informace o nejlepším čtverci gridu jsou přehledně shrnuty v těchto třech vlastnostech:

  • best_params_ – slovník parametrů, které dosáhly nejlepšího skóre.

  • best_score_ – skutečně nejlepší skóre.

  • best_index_ – řádek v cv_results_.rank_test_score s nejlepším výsledkem.

Hyperparameter Tuning in Python

Vlastnost best_estimator_

 

Vlastnost best_estimator_ je estimátor sestavený z nejlepších parametrů grid search.

V našem případě jde o estimátor Random Forest:

type(grid_rf_class.best_estimator_)

sklearn.ensemble.forest.RandomForestClassifier

Tento objekt lze přímo použít jako estimátor!

Hyperparameter Tuning in Python

Vlastnost best_estimator_

print(grid_rf_class.best_estimator_)

výpis kódu nejlepšího estimátoru

Hyperparameter Tuning in Python

Doplňkové informace

Doplňkové informace jsou dostupné v těchto vlastnostech:

  • scorer_

Jaká skórovací funkce byla použita na testovacích datech. (nastaveno na AUC)

  • n_splits_

Počet cross-validačních rozdělení. (nastaveno na 5)

  • refit_time_

Počet sekund potřebných k opětovnému natrénování nejlepšího modelu na celé datové sadě.

Hyperparameter Tuning in Python

Let's practice!

Hyperparameter Tuning in Python

Preparing Video For Download...