模型評估與實作

以 Python 進行信用風險建模

Michael Crabtree

Data Scientist, Ford Motor Company

比較分類報告

  • 使用 classification_report() 產生報告並比較

邏輯斯迴歸與梯度提升樹的分類報告

F1 分數與宏平均 F1 分數公式

以 Python 進行信用風險建模

ROC 與 AUC 分析

  • 效能較好的模型會有更高的提升度(lift)
  • 提升度越高代表 AUC 分數越高

兩個模型的 ROC 圖範例

以 Python 進行信用風險建模

模型校正(calibration)

  • 我們希望違約機率能準確反映模型的信心程度
    • 違約機率的預測本身具有不確定性
  • 一組貸款樣本的預測違約機率平均值,應接近該樣本實際違約比例
貸款樣本 平均預測 PD 樣本實際違約比例 已校正?
10 0.12 0.12 Yes
10 0.25 0.65 No
1 http://datascienceassn.org/sites/default/files/Predicting%20good%20probabilities%20with%20supervised%20learning.pdf
以 Python 進行信用風險建模

計算校正結果

  • 顯示各預測機率區間的實際違約百分比
  • 本質上是 calibration_curve() 結果的折線圖
from sklearn.calibration import calibration_curve
calibration_curve(y_test, probabilities_of_default, n_bins = 5)
# Fraction of positives
(array([0.09602649, 0.19521012, 0.62035996, 0.67361111]),
# Average probability
 array([0.09543535, 0.29196742, 0.46898465, 0.65512207]))
以 Python 進行信用風險建模

繪製校正曲線

plt.plot(mean_predicted_value, fraction_of_positives, label="%s" % "Example Model")

校正曲線範例

以 Python 進行信用風險建模

檢查校正曲線

  • 例如,選出兩個事件(在完美線之上與之下)

含兩個未校正預測範例的校正曲線

以 Python 進行信用風險建模

校正曲線解讀

上方範例的校正曲線

以 Python 進行信用風險建模

校正曲線解讀

下方範例的校正曲線

以 Python 進行信用風險建模

一起來練習吧!

以 Python 進行信用風險建模

Preparing Video For Download...