Penyetelan Hyperparameter di Python
Alex Scriven
Data Scientist
Mengapa mempelajari kursus ini?
Anda mungkin akan terkejut dengan apa yang ada di balik layar!
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
Apa itu parameter?
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... ]])
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"])
Sekarang urutkan dan cetak tiga koefisien teratas
coefs.sort_values(by=["Coefficient"], axis=0, inplace=True, ascending=False)
print(coefs.head(3))

Untuk menemukan parameter kita butuh:
Parameter ada di bagian 'Attributes', bukan 'Parameters'!
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.

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