信用模型效能

以 Python 進行信用風險建模

Michael Crabtree

Data Scientist, Ford Motor Company

模型準確率評分

  • 計算準確率

準確率公式

  • 使用 scikit-learn 的 .score() 方法
# 以測試資料檢查準確率
clf_logistic1.score(X_test,y_test)
0.81
  • loan_status 有 81% 正確預測
以 Python 進行信用風險建模

ROC 曲線圖

  • ROC(Receiver Operating Characteristic)曲線
    • 繪製真正率(sensitivity)對假正率(fall-out)
fallout, sensitivity, thresholds = roc_curve(y_test, prob_default)
plt.plot(fallout, sensitivity, color = 'darkorange')

ROC 圖範例

以 Python 進行信用風險建模

解析 ROC 圖

  • AUC(曲線下面積):曲線與隨機預測之間的面積

含 lift 與 AUC 註記的 ROC 圖範例

以 Python 進行信用風險建模

違約閾值

  • 閾值:機率達到何值視為違約

機率閾值示意圖

以 Python 進行信用風險建模

設定閾值

  • 依我們的 0.5 閾值重新標記貸款
preds = clf_logistic.predict_proba(X_test)
preds_df = pd.DataFrame(preds[:,1], columns = ['prob_default'])
preds_df['loan_status'] = preds_df['prob_default'].apply(lambda x: 1 if x > 0.5 else 0)

含機率與貸款狀態的資料範例

以 Python 進行信用風險建模

信用分類報告

  • 使用 scikit-learn 的 classification_report()
from sklearn.metrics import classification_report
classification_report(y_test, preds_df['loan_status'], target_names=target_names)

分類報告範例

以 Python 進行信用風險建模

選取分類評估指標

  • classification_report() 擷取並儲存特定指標
  • 使用 scikit-learn 的 precision_recall_fscore_support() 函式

含違約 recall 的分類報告範例

from sklearn.metrics import precision_recall_fscore_support
precision_recall_fscore_support(y_test,preds_df['loan_status'])[1][1]
以 Python 進行信用風險建模

一起來練習吧!

以 Python 進行信用風險建模

Preparing Video For Download...