Логистическая регрессия для прогнозирования вероятности дефолта

Моделирование кредитного риска на 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 — его отсутствие
Вероятность дефолта Интерпретация Прогноз статуса кредита
0,4 Дефолт маловероятен 0
0,90 Дефолт весьма вероятен 1
0,1 Дефолт очень маловероятен 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))
  • Столбцы для обучения: все столбцы данных кроме loan_status
  • Метки: loan_status (0, 1)
Моделирование кредитного риска на Python

Обучение и тестирование

  • Весь набор данных обычно делится на две части
Моделирование кредитного риска на Python

Обучение и тестирование

  • Весь набор данных обычно делится на две части
Подмножество данных Назначение Доля
Обучающее Обучение модели для построения прогнозов 60%
Тестовое Проверка модели на новых данных 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...