Python'da hiperparametre ayarlama

Python'da Hiperparametre Ayarlama

Alex Scriven

Data Scientist

Giriş

 

Bu kurs neden?

  • Birçok hiperparametreye sahip yeni, karmaşık algoritmalar
  • Ayarlama çok zaman alabilir
  • Varsayılanların ötesinde daha derin anlayış kazandırır

Kaputun altında neler bulacağınıza şaşırabilirsiniz!

Python'da Hiperparametre Ayarlama

Veri seti

 

Veri seti kredi kartı temerrütleriyle ilgilidir.

Tayvan'daki bazı tüketicilerin finansal geçmişine ilişkin değişkenler içerir. 30.000 kullanıcı ve 24 öznitelik vardır.

Modelleme hedefimiz krediyi temerrüde düşürüp düşürmedikleridir

Ön işleme yapılmıştır ve bazen bir kavramı göstermek için daha küçük örnekler kullanacağız

Veri seti hakkında ek bilgi için:

https://archive.ics.uci.edu/ml/datasets/default+of+credit+card+clients

Python'da Hiperparametre Ayarlama

Parametrelere Genel Bakış

 

Parametre nedir?

  • Modelleme sürecinde öğrenilen model bileşenleri
  • Bunları elle ayarlamazsınız (aslında ayarlayamazsınız!)
  • Algoritma bunları sizin için bulur
Python'da Hiperparametre Ayarlama

Lojistik Regresyonda Parametreler

Basit bir lojistik regresyon modeli:

log_reg_clf = LogisticRegression() 
log_reg_clf.fit(X_train, y_train)

print(log_reg_clf.coef_)
array([[-2.88651273e-06, -8.23168511e-03,  7.50857018e-04,
         3.94375060e-04,  3.79423562e-04,  4.34612046e-04,
         4.37561467e-04,  4.12107102e-04, -6.41089138e-06,
        -4.39364494e-06,  cont... ]])
Python'da Hiperparametre Ayarlama

Lojistik Regresyonda Parametreler

Katsayıları düzenleyin:

# Orijinal değişken adlarını alın
original_variables = list(X_train.columns)

# İsimleri ve katsayıları birleştirin zipped_together = list(zip(original_variables, log_reg_clf.coef_[0])) coefs = [list(x) for x in zipped_together]
# Sütun etiketleriyle bir DataFrame'e koyun coefs = pd.DataFrame(coefs, columns=["Variable", "Coefficient"])
Python'da Hiperparametre Ayarlama

Lojistik Regresyonda Parametreler

 

Şimdi ilk üç katsayıyı sıralayıp yazdırın

coefs.sort_values(by=["Coefficient"], axis=0, inplace=True, ascending=False)
print(coefs.head(3))

katsayılar tablosu

Python'da Hiperparametre Ayarlama

Parametreler nerede bulunur

 

Parametreleri bulmak için şunlara ihtiyaç duyarız:

  1. Algoritma hakkında biraz bilgi
  2. Scikit-Learn belgelerine bakmak

Parametreler 'Parameters' bölümünde değil, 'Attributes' bölümünde yer alır!

Python'da Hiperparametre Ayarlama

Random Forest'ta Parametreler

Ağaç tabanlı algoritmalar peki?

Random forest'ta katsayı yoktur; düğüm kararları vardır (hangi özellik ve hangi eşikte bölüneceği).

# Basit bir random forest tahminleyici
rf_clf = RandomForestClassifier(max_depth=2)
rf_clf.fit(X_train, y_train)

# Ormandan bir ağacı çekin chosen_tree = rf_clf.estimators_[7]

Basitlik için karar ağacının nihai çıktısını (bir görsel) göstereceğiz. Kullanılan paketleri (graphviz & pydotplus) kendiniz keşfedebilirsiniz.

Python'da Hiperparametre Ayarlama

Random Forest tek ağaç karar akış şeması

Python'da Hiperparametre Ayarlama

Düğüm Kararlarını Çıkarmak

Soldaki, üstten ikinci düğümün ayrıntılarını çıkarabiliriz:

# Bölündüğü sütunu alın
split_column = chosen_tree.tree_.feature[1]
split_column_name = X_train.columns[split_column]

# Bölündüğü eşiği alın split_value = chosen_tree.tree_.threshold[1]
print("This node split on feature {}, at a value of {}" .format(split_column_name, split_value))

"Bu düğüm PAY_0 özelliğinde, 1.5 değerinde bölündü"

Python'da Hiperparametre Ayarlama

Hadi pratik yapalım!

Python'da Hiperparametre Ayarlama

Preparing Video For Download...