Pohon boosting gradien dengan XGBoost

Pemodelan Risiko Kredit dengan Python

Michael Crabtree

Data Scientist, Ford Motor Company

Pohon keputusan

  • Membuat prediksi mirip regresi logistik
  • Strukturnya bukan regresi

Contoh pohon keputusan

Pemodelan Risiko Kredit dengan Python

Pohon keputusan untuk status pinjaman

  • Pohon keputusan sederhana untuk memprediksi probabilitas gagal bayar loan_status

Contoh prediksi pohon keputusan

Pemodelan Risiko Kredit dengan Python

Dampak pohon keputusan

Contoh prediksi pohon keputusan

Pinjaman Status sebenarnya Status prediksi Nilai pelunasan Nilai jual Untung/Rugi
1 0 1 $1,500 $250 -$1,250
2 0 1 $1,200 $250 -$950
Pemodelan Risiko Kredit dengan Python

Hutan pohon

  • XGBoost memakai banyak pohon sederhana (ensemble)
  • Tiap pohon sedikit lebih baik daripada tebak koin

Ensemble prediktor pohon contoh

Pemodelan Risiko Kredit dengan Python

Membuat dan melatih pohon

  • Bagian dari paket Python xgboost, disingkat xgb
  • Dilatih dengan .fit() seperti model regresi logistik
# Buat model regresi logistik
clf_logistic = LogisticRegression()
# Latih regresi logistik
clf_logistic.fit(X_train, np.ravel(y_train))
# Buat model pohon boosting gradien
clf_gbt = xgb.XGBClassifier()
# Latih pohon boosting gradien
clf_gbt.fit(X_train,np.ravel(y_train))
Pemodelan Risiko Kredit dengan Python

Prediksi gagal bayar dengan XGBoost

  • Memprediksi dengan .predict() dan .predict_proba()
    • .predict_proba() menghasilkan nilai antara 0 dan 1
    • .predict() menghasilkan 1 atau 0 untuk loan_status
# Prediksi probabilitas gagal bayar
gbt_preds_prob = clf_gbt.predict_proba(X_test)
# Prediksi loan_status sebagai 1 atau 0
gbt_preds = clf_gbt.predict(X_test)
# gbt_preds_prob
array([[0.059, 0.940], [0.121, 0.989]])
# gbt_preds
array([1, 1, 0...])
Pemodelan Risiko Kredit dengan Python

Hyperparameter pada pohon boosting gradien

  • Hyperparameter: parameter model (pengaturan) yang tidak dipelajari dari data
  • Hyperparameter umum untuk pohon boosting gradien
    • learning_rate: makin kecil, tiap langkah makin konservatif
    • max_depth: batas kedalaman tiap pohon; lebih besar = lebih kompleks
xgb.XGBClassifier(learning_rate = 0.2,
                  max_depth = 4)
Pemodelan Risiko Kredit dengan Python

Ayo berlatih!

Pemodelan Risiko Kredit dengan Python

Preparing Video For Download...