Grid search çıktısını anlama

Python'da Hiperparametre Ayarlama

Alex Scriven

Data Scientist

Çıktıyı analiz etmek

GridSearchCV çıktılarınızı inceleyelim.

GridSearchCV özellikleri üç grupta toplanır:

  • Sonuç günlüğü
    • cv_results_
  • En iyi sonuçlar
    • best_index_, best_params_ ve best_score_
  • 'Ek bilgiler'
    • scorer_, n_splits_ ve refit_time_
Python'da Hiperparametre Ayarlama

Nesne özelliklerine erişim

 

Özelliklere nokta gösterimiyle erişilir.

Örneğin:

grid_search_object.property

Burada property, almak istediğiniz gerçek özelliktir.

Python'da Hiperparametre Ayarlama

.cv_results_ özelliği

cv_results_ özelliği:

Bunu yazdırıp analiz etmek için bir DataFrame'e okuyun:

cv_results_df = pd.DataFrame(grid_rf_class.cv_results_)

print(cv_results_df.shape)

(12, 23)

  • Izgaradaki 12 kare ya da çalıştırdığımız 12 model için 12 satır
Python'da Hiperparametre Ayarlama

.cv_results_ 'time' sütunları

time sütunları, modeli eğitmek (ve skorlamak) için geçen süreleri belirtir.

5 katlı çapraz doğrulama yaptığımızı hatırlayın. Bu süreç 5 kez çalışır ve saniye cinsinden ortalama ile standart sapmayı saklar.

zaman sütunları

Python'da Hiperparametre Ayarlama

.cv_results_ 'param_' sütunları

 

param_ sütunları, o satırda denenen parametreleri saklar; her parametre için bir sütun

param sütunları

Python'da Hiperparametre Ayarlama

.cv_results_ 'param' sütunu

params sütunu tüm parametrelerin sözlüğünü içerir:

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

params sütunu

Python'da Hiperparametre Ayarlama

.cv_results_ 'test_score' sütunları

 

test_score sütunları, her çapraz kat için test kümesi skorlarını ve bazı özet istatistikleri içerir:

test skoru

Python'da Hiperparametre Ayarlama

.cv_results_ 'rank_test_score' sütunu

 

mean_test_score değerlerini en iyiden en kötüye sıralayan rank sütunu:

rank test skoru

Python'da Hiperparametre Ayarlama

En iyi satırı çıkarmak

 

rank_test_score sütununu kullanarak cv_results_ içinden en iyi kareyi kolayca seçebiliriz

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

en iyi satır

Python'da Hiperparametre Ayarlama

.cv_results_ 'train_score' sütunları

Ardından test_score sütunları, training_scores için tekrarlanır.

Aklınızda tutmanız gereken bazı önemli notlar:

  • Eğitim skoru sütunlarını eklemek için return_train_score değeri True olmalıdır.

  • Eğitim skorları için sıralama sütunu yoktur; sadece test kümesi performansı önemlidir.

Python'da Hiperparametre Ayarlama

En iyi grid karesi

 

En iyi kareye ilişkin bilgiler şu üç özellikte özetlenir:

  • best_params_: En iyi skoru veren parametre sözlüğü.

  • best_score_: Gerçek en iyi skor.

  • best_index_: cv_results_.rank_test_score içinde en iyi olan satır.

Python'da Hiperparametre Ayarlama

best_estimator_ özelliği

 

best_estimator_ özelliği, grid aramasındaki en iyi parametrelerle oluşturulmuş bir kestiricidir.

Bizim için bu bir Random Forest kestiricisidir:

type(grid_rf_class.best_estimator_)

sklearn.ensemble.forest.RandomForestClassifier

İstersek bu nesneyi doğrudan bir kestirici olarak da kullanabiliriz!

Python'da Hiperparametre Ayarlama

best_estimator_ özelliği

print(grid_rf_class.best_estimator_)

en iyi kestirici kod çıktısı

Python'da Hiperparametre Ayarlama

Ek bilgiler

Bazı ek bilgiler şu özelliklerde bulunur:

  • scorer_

Ayrılan veride kullanılan skorlayıcı işlev. (AUC olarak ayarladık)

  • n_splits_

Kaç çapraz doğrulama bölmesi. (5 olarak ayarladık)

  • refit_time_

Tüm veri kümesinde en iyi modelin yeniden eğitilmesine harcanan saniye.

Python'da Hiperparametre Ayarlama

Hadi pratik yapalım!

Python'da Hiperparametre Ayarlama

Preparing Video For Download...