Cây tăng cường dần (XGBoost)

Mô hình hóa Rủi ro Tín dụng bằng Python

Michael Crabtree

Data Scientist, Ford Motor Company

Cây quyết định

  • Tạo dự đoán tương tự hồi quy logistic
  • Không có cấu trúc như một hồi quy

Ví dụ về cây quyết định

Mô hình hóa Rủi ro Tín dụng bằng Python

Cây quyết định cho loan status

  • Cây quyết định đơn giản để dự đoán xác suất vỡ nợ loan_status

Ví dụ dự đoán bằng cây quyết định

Mô hình hóa Rủi ro Tín dụng bằng Python

Tác động của cây quyết định

Ví dụ dự đoán bằng cây quyết định

Khoản vay Trạng thái thật Trạng thái dự đoán Giá trị tất toán Giá bán Lãi/Lỗ
1 0 1 $1,500 $250 -$1,250
2 0 1 $1,200 $250 -$950
Mô hình hóa Rủi ro Tín dụng bằng Python

Một rừng cây

  • XGBoost dùng nhiều cây đơn giản (ensemble)
  • Mỗi cây chỉ nhỉnh hơn tung đồng xu một chút

Tập hợp các cây dự đoán ví dụ

Mô hình hóa Rủi ro Tín dụng bằng Python

Tạo và huấn luyện cây

  • Thuộc gói Python xgboost, gọi tắt là xgb
  • Huấn luyện bằng .fit() giống hồi quy logistic
# Tạo mô hình hồi quy logistic
clf_logistic = LogisticRegression()
# Huấn luyện hồi quy logistic
clf_logistic.fit(X_train, np.ravel(y_train))
# Tạo mô hình cây tăng cường dần
clf_gbt = xgb.XGBClassifier()
# Huấn luyện cây tăng cường dần
clf_gbt.fit(X_train,np.ravel(y_train))
Mô hình hóa Rủi ro Tín dụng bằng Python

Dự đoán vỡ nợ với XGBoost

  • Dự đoán bằng cả .predict().predict_proba()
    • .predict_proba() cho giá trị từ 0 đến 1
    • .predict() cho 1 hoặc 0 cho loan_status
# Dự đoán xác suất vỡ nợ
gbt_preds_prob = clf_gbt.predict_proba(X_test)
# Dự đoán loan_status là 1 hoặc 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...])
Mô hình hóa Rủi ro Tín dụng bằng Python

Siêu tham số của cây tăng cường dần

  • Siêu tham số: tham số mô hình (thiết lập) không học trực tiếp từ dữ liệu
  • Một số siêu tham số phổ biến cho cây tăng cường dần
    • learning_rate: nhỏ hơn → bước đi thận trọng hơn
    • max_depth: độ sâu tối đa của mỗi cây; lớn hơn → phức tạp hơn
xgb.XGBClassifier(learning_rate = 0.2,
                  max_depth = 4)
Mô hình hóa Rủi ro Tín dụng bằng Python

Ayo berlatih!

Mô hình hóa Rủi ro Tín dụng bằng Python

Preparing Video For Download...