Реальные проблемы и машинное обучение

Моделирование кредитного риска - что, если точность прогнозов моделей невысока?

Какая модель лучше всего работает?

Эта статья предназначена для демонстрации концепции, а не методов или кода.

Один из вопросов, который я всегда получаю, когда говорю о моделировании кредитного риска (невыплата по ссуде, невыплата по кредитной карте), касается ограничений алгоритмов или моделей прогнозирования.

Как мы можем реализовать решение, если вероятность предсказания ниже? Как мы можем эффективно использовать модель или алгоритм для решения реальных проблем?

Выписали все доступные методы прогнозирования вероятности дефолта, но не вдавались в подробности, поскольку цель данной статьи не в этом.

Давайте быстро рассмотрим некоторые способы прогнозирования вероятности дефолта.

Реализация №1:

Все прогнозные модели содержат ошибки прогнозирования. Примите.

При стохастическом характере данных и алгоритмов может оказаться невозможным достичь высшей оценки для реальных задач.

Имея в виду эту мысль, давайте продолжим.

По умолчанию: компоненты

Основная мера для принятия решения перед выплатой кредита - это Ожидаемый убыток, который состоит из трех компонентов.

Ожидаемый убыток (EL):

  1. Вероятность дефолта (PD)
  2. Экспозиция по умолчанию (EAD)
  3. Убыток по умолчанию (LGD)

Как рассчитать ожидаемый убыток

EL = (PD * EAD * LGD)

в этой статье мы рассмотрим вероятность появления информации, связанной с дефолтом.

Информация, используемая для принятия решений:

Перед принятием решения банки используют различную информацию.

  1. Информация о приложении: доход, семейное положение, возраст, домовладелец и т. д.

2 . Поведенческая информация: остаток на счете, своевременность платежей за прошлые периоды, значения по умолчанию, частота заимствований и т. Д.

Пример набора данных

Мы будем использовать пример набора данных, который содержит информацию, как показано ниже, для объяснения концепции всякий раз, когда возникает необходимость в приведенном ниже контенте.

> head(loan_dat)
  loan_status loan_amnt int_rate  grade  emp_length   home_ownership
1           0      5000    10.65   B         10           RENT
2           0      2400       NA   C         25           RENT
3           0     10000    13.49   C         13           RENT
4           0      5000       NA   A          3           RENT
5           0      3000       NA   E          9           RENT
6           0     12000    12.69   B         11           OWN
    annual_inc    age
1      24000      33
2      12252      31
3      49200      24
4      36000      39
5      48000      24
6      75000      28

Понимание данных:

Выполните исследовательский анализ данных (EDA), чтобы лучше понять набор данных.

  1. Управление выбросами:
  • Проверьте выбросы с помощью методов обнаружения выбросов (одномерных и многомерных) - ознакомьтесь с этими статьями, чтобы быстро понять.

2. Отсутствующие данные: стратегии

  • Удалить строку / столбец (не рекомендуется)
  • Заменить (среднее вменение)
  • Сохранить NA (грубая классификация, поместите переменную в «контейнеры»)

Краткая шпаргалка:

Некоторые методы создания моделей

Мы не собираемся подробно обсуждать, как мы собираемся создать модель, но изложим несколько идей для объяснения концепции.

Логистическая регрессия:

  1. Модель регрессии с выходными данными от 0 до 1.
  2. Нам нужно иметь пороговое или пороговое значение, чтобы определить, будет ли прогноз считаться значением по умолчанию или не по умолчанию.

Пример с «age» и «home_ownership» будет выглядеть, как показано ниже, после решения будет иметь значение вероятности дефолта.

P (кредит_статус = 1 | возраст = 32, домовладение = аренда)

Деревья решений:

Трудно построить хорошее дерево решений для данных о кредитных рисках. Основная причина - несбалансированные данные.

Чтобы устранить несбалансированные данные,

  1. Передискретизация или передискретизация
  2. Проблема с точностью исчезнет
  3. Используйте только на тренировочном наборе
  4. Изменение априорных вероятностей
  5. Включая матрицу потерь

Проверьте модели, чтобы увидеть, что лучше!

Проблемы с большими деревьями решений:

  1. Они слишком сложные и непонятные
  2. Переобучение происходит, когда модель применяется к набору тестов.

Следует учитывать методы обрезки.

Некоторые меры

  1. Точность = (истинно отрицательный + истинно положительный) / (истинно отрицательный + ложноположительный + ложноотрицательный + истинно положительный)
  2. Чувствительность = истинно положительный / (ложноотрицательный + истинно положительный)
  3. Специфичность = истинно отрицательный / (истинно отрицательный + ложноположительный)
  4. Точность = истинно положительный / (истинный положительный + ложноположительный)
  5. Отзыв = истинно положительный / (истинно положительный + ложноотрицательный)
  6. Оценка F1 = (2 x (точность x отзыв) / (точность + отзыв))

Как использовать показатели точности, точности и отзыва.

Высокая точность и отзывчивость: хорошая и сбалансированная модель

Высокая точность и низкий уровень запоминания: не очень хорошо обнаруживает, но точно обнаруживает

Низкая точность и высокий уровень отзыва: хорошие возможности обнаружения, но высока вероятность ложных срабатываний.

Точность измеряет количество правильно спрогнозированных выборок по общему количеству выборок, и не лучший показатель для несбалансированных данных.

Было бы разумно использовать точность как меру только в том случае, если метки классов распределены равномерно.

Реализация №2:

Независимо от количества отклоненных кредитных заявок, дефолтные должники все равно останутся.

Стратегия:

Теперь, когда мы поняли, что эти модели никогда не будут идеальными на 100% и сколько бы заявок ни было отклонено на основе этой модели, все равно будут заемщики, которые не выполнят обязательства.

Альтернативное решение этой проблемы состоит в том, что мы можем использовать модель, чтобы решить, сколько кредитов банк должен утвердить, если они не хотят превышать определенный процент дефолтов.

Предположим, банк решает отклонить 20% новых кандидатов на основании установленной вероятности дефолта. Это означает, что 20% с самой высокой прогнозируемой вероятностью дефолта будут отклонены.

Значение отсечения:

Чтобы получить значение отсечения, которое приведет к прогнозируемой вероятности 1 (по умолчанию) для 20% случаев в тестовом наборе, мы должны посмотреть на 80% квантиль вектора прогнозов.

Воспользовавшись этим пороговым значением, мы узнаем, какие кандидаты на получение ссуды из набора тестов были бы отклонены при 80% -ной степени принятия.

Получите пороговое значение, при котором показатель приемки составит 80%

cutoff_point <- quantile(prob_default, 0.8)

Получите двоичные предсказания. (Отметьте 1, если прогнозируемая вероятность ›отсечка, иначе 0)

bin_pred <- ifelse(prob_default > cutoff_point, 1, 0)

Если мы посмотрим на истинный статус ссуд, которые были бы приняты с использованием этого отсечения, и посмотрим, какой процент из этого набора принятых ссуд фактически не выплачен (который также упоминается как плохая оценка)

accepted_loans <- test_set$loan_status[bin_pred == 0]

Получите плохую ставку по принятым кредитам

bad_rate <- sum(accepted_loans) / length(accepted_loans)

Таблица стратегий и кривая стратегии

Повторяя вычисления, которые мы сделали в предыдущем упражнении для нескольких уровней принятия, мы можем получить таблицу стратегий.

Эта таблица может быть полезным инструментом для банков, поскольку она может дать им лучшее представление для определения приемлемой стратегии.

Предположим, у нас есть две разные модели, таблица стратегий может выглядеть так.

Таблица стратегий:

Кривая стратегии:

Пояснения к выходным данным модели для нетехнических специалистов

Что, если банки не захотят принимать трудное решение - выбирать процентную ставку или плохую ставку? Что, если все, что они хотят, - это знать в целом, какая модель лучшая?

Тогда одним из способов объяснения было бы создание моделей с лучшим AUC. Но следует отметить, что лучший AUC не всегда решает наши проблемы в реальном мире.

Плюсы:

  1. Измеряет, насколько хорошо ранжируются прогнозы.
  2. Измеряет качество прогнозов модели независимо от выбранного порога классификации.

Минусы:

  1. Если нам нужны хорошо откалиброванные вероятностные выходные данные, а AUC нам об этом не сообщит.
  2. В случаях, когда стоимость ложноотрицательных результатов по сравнению с ложными срабатываниями очень важна, минимизация одного типа ошибки классификации может быть критичной. AUC не будет полезным показателем для этого сценария.
  3. Кривая ROC (кривая рабочих характеристик приемника), график, показывающий эффективность модели классификации при всех порогах классификации.

Эта кривая отображает два параметра: истинно положительный показатель и ложноположительный показатель.

5. AUC (площадь под кривой ROC): AUC измеряет всю двумерную площадь под всей кривой ROC.

  • Значение AUC варьируется от 0 до 1.
  • Модель со 100% ошибочными прогнозами будет иметь AUC 0,0.
  • Модель со 100% правильными прогнозами будет иметь AUC 1,0.

Более высокая кривая AUC слева обычно является лучшей моделью, чтобы выразить это проще.

Внимание. Следует всегда опасаться ложноотрицательной частоты, если проблема заключается в уменьшении значения по умолчанию.

Резюме:

Хотя создание моделей машинного обучения с высоким AUC является идеальным способом, эта статья предназначена для того, чтобы сообщить кому-то, кто не может улучшить производительность модели при любых ограничениях, которые он все еще может попытаться связать свои модели с кривой стратегии и таблицей стратегии, чтобы ответить на некоторые из них. вопросы из реального мира.