与信モデルの性能

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(受信者動作特性)曲線
    • 真陽性率(感度)と偽陽性率(フォールアウト)をプロット
fallout, sensitivity, thresholds = roc_curve(y_test, prob_default)
plt.plot(fallout, sensitivity, color = 'darkorange')

ROC曲線の例

Pythonで学ぶクレジットリスクモデリング

ROCの分析

  • AUC(曲線下面積):曲線とランダム予測の間の面積

リフトと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() を使用

デフォルトの再現率を含む分類レポート例

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...