Analiza wyników przeszukiwania siatki

Strojenie hiperparametrów w Pythonie

Alex Scriven

Data Scientist

Analiza wyników

Przeanalizujmy wyniki GridSearchCV.

Trzy grupy właściwości GridSearchCV:

  • Dziennik wyników
    • cv_results_
  • Najlepsze wyniki
    • best_index_, best_params_ & best_score_
  • Informacje dodatkowe
    • scorer_, n_splits_ & refit_time_
Strojenie hiperparametrów w Pythonie

Dostęp do właściwości obiektu

 

Dostęp do właściwości uzyskuje się za pomocą notacji kropkowej.

Na przykład:

grid_search_object.property

Gdzie property to nazwa właściwości, którą chcemy pobrać.

Strojenie hiperparametrów w Pythonie

Właściwość .cv_results_

Właściwość cv_results_:

Wczytaj ją do DataFrame, aby wydrukować i przeanalizować:

cv_results_df = pd.DataFrame(grid_rf_class.cv_results_)

print(cv_results_df.shape)

(12, 23)

  • 12 wierszy odpowiada 12 polom siatki lub 12 uruchomionym modelom
Strojenie hiperparametrów w Pythonie

Kolumny 'time' w .cv_results_

Kolumny time odnoszą się do czasu potrzebnego na dopasowanie (i ocenę) modelu.

Pamiętaj, że wykonaliśmy 5-krotną walidację krzyżową — model był uruchamiany 5 razy, a kolumny przechowują średnią i odchylenie standardowe czasu w sekundach.

kolumny czasu

Strojenie hiperparametrów w Pythonie

Kolumny 'param_' w .cv_results_

 

Kolumny param_ przechowują parametry testowane w danym wierszu — jedna kolumna na parametr.

kolumny param

Strojenie hiperparametrów w Pythonie

Kolumna 'param' w .cv_results_

Kolumna params zawiera słownik wszystkich parametrów:

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

kolumna params

Strojenie hiperparametrów w Pythonie

Kolumny 'test_score' w .cv_results_

 

Kolumny test_score zawierają wyniki na zbiorze testowym dla każdego podziału krzyżowego oraz statystyki podsumowujące:

wyniki testowe

Strojenie hiperparametrów w Pythonie

Kolumna 'rank_test_score' w .cv_results_

 

Kolumna rankingu porządkuje mean_test_score od najlepszego do najgorszego:

ranking wyników testowych

Strojenie hiperparametrów w Pythonie

Wyodrębnianie najlepszego wiersza

 

Najlepszy wiersz siatki można łatwo wybrać z cv_results_ przy użyciu kolumny rank_test_score

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

najlepszy wiersz

Strojenie hiperparametrów w Pythonie

Kolumny 'train_score' w .cv_results_

Kolumny test_score są następnie powtórzone dla training_scores.

Ważne uwagi:

  • return_train_score musi być True, aby uwzględnić kolumny wyników treningowych.

  • Brak kolumny rankingu dla wyników treningowych — liczy się tylko wydajność na zbiorze testowym.

Strojenie hiperparametrów w Pythonie

Najlepsze pole siatki

 

Informacje o najlepszym polu siatki są zebrane w trzech właściwościach:

  • best_params_ — słownik parametrów, które dały najlepszy wynik.

  • best_score_ — wartość najlepszego wyniku.

  • best_index_ — wiersz w cv_results_.rank_test_score z najlepszym wynikiem.

Strojenie hiperparametrów w Pythonie

Właściwość best_estimator_

 

Właściwość best_estimator_ to estymator zbudowany z użyciem najlepszych parametrów przeszukiwania siatki.

W naszym przypadku jest to estymator Random Forest:

type(grid_rf_class.best_estimator_)

sklearn.ensemble.forest.RandomForestClassifier

Można też bezpośrednio użyć tego obiektu jako estymatora!

Strojenie hiperparametrów w Pythonie

Właściwość best_estimator_

print(grid_rf_class.best_estimator_)

wydruk najlepszego estymatora

Strojenie hiperparametrów w Pythonie

Informacje dodatkowe

Dodatkowe informacje dostępne są w następujących właściwościach:

  • scorer_

Funkcja oceniająca użyta na danych walidacyjnych. (ustawiona na AUC)

  • n_splits_

Liczba podziałów walidacji krzyżowej. (ustawiona na 5)

  • refit_time_

Czas w sekundach poświęcony na ponowne dopasowanie najlepszego modelu do całego zbioru danych.

Strojenie hiperparametrów w Pythonie

Czas na ćwiczenia!

Strojenie hiperparametrów w Pythonie

Preparing Video For Download...