Înțelegerea rezultatelor grid search

Ajustarea hiperparametrilor în Python

Alex Scriven

Data Scientist

Analiza rezultatelor

Să analizăm rezultatele GridSearchCV.

Trei grupuri de proprietăți GridSearchCV:

  • Un jurnal de rezultate
    • cv_results_
  • Cele mai bune rezultate
    • best_index_, best_params_ & best_score_
  • „Informații suplimentare"
    • scorer_, n_splits_ & refit_time_
Ajustarea hiperparametrilor în Python

Accesarea proprietăților unui obiect

 

Proprietățile sunt accesate prin notația punct.

De exemplu:

grid_search_object.property

Unde property este proprietatea pe care doriți să o obțineți

Ajustarea hiperparametrilor în Python

Proprietatea .cv_results_

Proprietatea cv_results_:

Citiți-o într-un DataFrame pentru a o analiza:

cv_results_df = pd.DataFrame(grid_rf_class.cv_results_)

print(cv_results_df.shape)

(12, 23)

  • Cele 12 rânduri corespund celor 12 combinații din grid sau celor 12 modele rulate
Ajustarea hiperparametrilor în Python

Coloanele 'time' din .cv_results_

Coloanele time indică timpul necesar pentru antrenarea (și scorarea) modelului.

Deoarece am efectuat o validare încrucișată cu 5 fold-uri, modelul a rulat de 5 ori, stocând media și deviația standard a timpilor în secunde.

coloane time

Ajustarea hiperparametrilor în Python

Coloanele 'param_' din .cv_results_

 

Coloanele param_ stochează parametrii testați pe acel rând, câte o coloană per parametru

coloane param

Ajustarea hiperparametrilor în Python

Coloana 'param' din .cv_results_

Coloana params conține un dicționar cu toți parametrii:

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

coloana params

Ajustarea hiperparametrilor în Python

Coloanele 'test_score' din .cv_results_

 

Coloanele test_score conțin scorurile pe setul de test pentru fiecare fold de validare încrucișată, precum și statistici sumare:

test score

Ajustarea hiperparametrilor în Python

Coloana 'rank_test_score' din .cv_results_

 

Coloana rank ordonează mean_test_score de la cel mai bun la cel mai slab:

rank test score

Ajustarea hiperparametrilor în Python

Extragerea celui mai bun rând

 

Putem selecta ușor cel mai bun grid square din cv_results_ folosind coloana rank_test_score

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

cel mai bun rând

Ajustarea hiperparametrilor în Python

Coloanele 'train_score' din .cv_results_

Coloanele test_score sunt repetate și pentru training_scores.

Câteva aspecte importante de reținut:

  • return_train_score trebuie să fie True pentru a include coloanele de antrenament.

  • Nu există coloană de ranking pentru scorurile de antrenament, deoarece ne interesează doar performanța pe setul de test.

Ajustarea hiperparametrilor în Python

Cel mai bun grid square

 

Informațiile despre cel mai bun grid square sunt rezumate în trei proprietăți:

  • best_params_, dicționarul de parametri care a dat cel mai bun scor.

  • best_score_, cel mai bun scor obținut.

  • best_index_, rândul din cv_results_.rank_test_score corespunzător celui mai bun rezultat.

Ajustarea hiperparametrilor în Python

Proprietatea best_estimator_

 

Proprietatea best_estimator_ este un estimator construit cu cei mai buni parametri din grid search.

În cazul nostru, acesta este un estimator Random Forest:

type(grid_rf_class.best_estimator_)

sklearn.ensemble.forest.RandomForestClassifier

Putem folosi direct acest obiect ca estimator!

Ajustarea hiperparametrilor în Python

Proprietatea best_estimator_

print(grid_rf_class.best_estimator_)

afișare cod best estimator

Ajustarea hiperparametrilor în Python

Informații suplimentare

Informații suplimentare sunt disponibile în următoarele proprietăți:

  • scorer_

Funcția de scor utilizată pe datele de validare. (am setat AUC)

  • n_splits_

Numărul de fold-uri de validare încrucișată. (am setat 5)

  • refit_time_

Numărul de secunde utilizate pentru reantrenarea celui mai bun model pe întregul set de date.

Ajustarea hiperparametrilor în Python

Să exersăm!

Ajustarea hiperparametrilor în Python

Preparing Video For Download...