Tuning hyperparameter di Python

Penyetelan Hyperparameter di Python

Alex Scriven

Data Scientist

Pendahuluan

 

Mengapa mempelajari kursus ini?

  • Algoritme baru dan kompleks dengan banyak hyperparameter
  • Tuning bisa memakan banyak waktu
  • Memperdalam pemahaman melampaui nilai default

Anda mungkin akan terkejut dengan apa yang ada di balik layar!

Penyetelan Hyperparameter di Python

Dataset

 

Dataset ini terkait gagal bayar kartu kredit.

Berisi variabel tentang riwayat finansial sejumlah konsumen di Taiwan. Ada 30.000 pengguna dan 24 atribut.

Target pemodelan: apakah mereka gagal bayar pinjaman

Dataset sudah dipraproses dan kadang kita ambil sampel lebih kecil untuk demonstrasi konsep

Info tambahan tentang dataset ada di sini:

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

Penyetelan Hyperparameter di Python

Gambaran Parameter

 

Apa itu parameter?

  • Komponen model yang dipelajari selama proses pemodelan
  • Anda tidak menetapkannya manual (memang tidak bisa!)
  • Algoritme yang akan menemukannya untuk Anda
Penyetelan Hyperparameter di Python

Parameter pada Logistic Regression

Model logistic regression sederhana:

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... ]])
Penyetelan Hyperparameter di Python

Parameter pada Logistic Regression

Rapikan koefisien:

# Ambil nama variabel asli
original_variables = list(X_train.columns)

# Pasangkan nama dan koefisien zipped_together = list(zip(original_variables, log_reg_clf.coef_[0])) coefs = [list(x) for x in zipped_together]
# Masukkan ke DataFrame dengan label kolom coefs = pd.DataFrame(coefs, columns=["Variable", "Coefficient"])
Penyetelan Hyperparameter di Python

Parameter pada Logistic Regression

 

Sekarang urutkan dan cetak tiga koefisien teratas

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

tabel koefisien

Penyetelan Hyperparameter di Python

Di mana menemukan Parameter

 

Untuk menemukan parameter kita butuh:

  1. Sedikit memahami algoritma
  2. Lihat dokumentasi Scikit-Learn

Parameter ada di bagian 'Attributes', bukan 'Parameters'!

Penyetelan Hyperparameter di Python

Parameter pada Random Forest

Bagaimana dengan algoritma berbasis pohon?

Random forest tidak punya koefisien, tetapi keputusan node (fitur apa dan nilai berapa untuk split).

# Estimator random forest sederhana
rf_clf = RandomForestClassifier(max_depth=2)
rf_clf.fit(X_train, y_train)

# Ambil satu pohon dari forest chosen_tree = rf_clf.estimators_[7]

Untuk ringkasnya, kita tampilkan produk akhir (gambar) dari decision tree. Silakan jelajahi paket yang dipakai (graphviz & pydotplus) sendiri.

Penyetelan Hyperparameter di Python

Diagram alur keputusan satu pohon Random Forest

Penyetelan Hyperparameter di Python

Mengekstrak Keputusan Node

Kita bisa mengambil detail node kiri, urutan kedua dari atas:

# Kolom tempat split
split_column = chosen_tree.tree_.feature[1]
split_column_name = X_train.columns[split_column]

# Nilai ambang split split_value = chosen_tree.tree_.threshold[1]
print("This node split on feature {}, at a value of {}" .format(split_column_name, split_value))

"Node ini membagi pada fitur PAY_0, pada nilai 1.5"

Penyetelan Hyperparameter di Python

Ayo berlatih!

Penyetelan Hyperparameter di Python

Preparing Video For Download...