延滞確率のロジスティック回帰

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

Michael Crabtree

Data Scientist, Ford Motor Company

延滞確率

  • 誰かが延滞する可能性=延滞確率
  • 0.86 のように 0〜1 の値
  • loan_status1 は延滞、0 は延滞なし
Pythonで学ぶクレジットリスクモデリング

延滞確率

  • 誰かが延滞する可能性=延滞確率
  • 0〜1 の確率値(例: 0.86
  • loan_status1 は延滞、0 は延滞なし
延滞確率 解釈 予測ステータス
0.4 延滞の可能性は低い 0
0.90 延滞の可能性が高い 1
0.1 延滞の可能性は非常に低い 0
Pythonで学ぶクレジットリスクモデリング

確率を予測する

  • 機械学習の出力としての延滞確率
    • 列(特徴量)から学習
  • 分類モデル(延滞/非延滞)
  • よく使う2モデル:
    • ロジスティック回帰
    • 決定木

ロジスティック回帰と決定木の例

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

ロジスティック回帰

  • 線形回帰に似るが、出力は 01 のみ

線形回帰とロジスティック回帰の式

線形回帰とロジスティック回帰のグラフ例

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

ロジスティック回帰の学習

  • ロジスティック回帰は scikit-learn で利用可能
from sklearn.linear_model import LogisticRegression
  • パラメータ有無で関数呼び出し
clf_logistic = LogisticRegression(solver='lbfgs')
  • 学習は .fit() メソッドを使用
clf_logistic.fit(training_columns, np.ravel(training_labels))
  • 学習用列: loan_status 以外の全列
  • ラベル: loan_status(0,1)
Pythonで学ぶクレジットリスクモデリング

学習用とテスト用

  • データ全体は通常2分割します
Pythonで学ぶクレジットリスクモデリング

学習用とテスト用

  • データ全体は通常2分割します
サブセット 用途 割合
Train 予測のために学習 60%
Test 未見データで検証 40%
Pythonで学ぶクレジットリスクモデリング

学習用・テスト用データの作成

  • データを特徴量列とラベルに分割します
X = cr_loan.drop('loan_status', axis = 1)
y = cr_loan[['loan_status']]
  • scikit-learn の train_test_split() を使用します
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.4, random_state=123)
  • test_size: テスト用の割合
  • random_state: 再現用の乱数シード
Pythonで学ぶクレジットリスクモデリング

練習してみましょう!

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

Preparing Video For Download...