Логістична регресія для ймовірності дефолту

Моделювання кредитного ризику в Python

Michael Crabtree

Data Scientist, Ford Motor Company

Ймовірність дефолту

  • Ймовірність, що хтось не поверне кредит, — це ймовірність дефолту
  • Значення ймовірності між 0 та 1, наприклад 0.86
  • loan_status зі значенням 1 — дефолт, 0 — без дефолту
Моделювання кредитного ризику в Python

Ймовірність дефолту

  • Ймовірність, що хтось не поверне кредит, — це ймовірність дефолту
  • Значення ймовірності між 0 та 1, наприклад 0.86
  • loan_status зі значенням 1 — дефолт, 0 — без дефолту
Probability of Default Interpretation Predicted loan status
0.4 Unlikely to default 0
0.90 Very likely to default 1
0.1 Very unlikely to default 0
Моделювання кредитного ризику в Python

Прогнозування ймовірностей

  • Ймовірності дефолту як результат машинного навчання
    • Навчання на даних у стовпцях (ознаках)
  • Класифікаційні моделі (дефолт/без дефолту)
  • Дві найпоширеніші моделі:
    • Логістична регресія
    • Дерево рішень

Приклад логістичної регресії та дерева рішень

Моделювання кредитного ризику в Python

Логістична регресія

  • Подібна до лінійної регресії, але повертає значення лише між 0 і 1

Формула лінійної та логістичної регресії

Приклад графіка лінійної та логістичної регресії

Моделювання кредитного ризику в Python

Навчання логістичної регресії

  • Логістична регресія доступна в пакеті scikit-learn
from sklearn.linear_model import LogisticRegression
  • Викликається як функція з параметрами або без них
clf_logistic = LogisticRegression(solver='lbfgs')
  • Використовує метод .fit() для навчання
clf_logistic.fit(training_columns, np.ravel(training_labels))
  • Training Columns: усі стовпці даних, крім loan_status
  • Labels: loan_status (0,1)
Моделювання кредитного ризику в Python

Навчання і тестування

  • Увесь набір даних зазвичай ділять на дві частини
Моделювання кредитного ризику в Python

Навчання і тестування

  • Увесь набір даних зазвичай ділять на дві частини
Data Subset Usage Portion
Train Learn from the data to generate predictions 60%
Test Test learning on new unseen data 40%
Моделювання кредитного ризику в Python

Створення навчальної й тестової вибірок

  • Розділіть дані на навчальні стовпці та мітки
X = cr_loan.drop('loan_status', axis = 1)
y = cr_loan[['loan_status']]
  • Використайте функцію train_test_split() із scikit-learn
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...