TL;DR🧭

Добро пожаловать на борт нашего грандиозного путешествия по прогнозированию кредитного риска! В этом приключении мы начали с необработанного набора данных о кредитах от Международного банка реконструкции и развития. После некоторой очистки данных и разработки функций мы обучили модель логистической регрессии, наш надежный корабль, предсказывать, является ли кредит «хорошим» или «плохим». Модель научилась улучшать обнаружение «плохих» кредитов с помощью тонкой настройки, несмотря на такие проблемы, как дисбаланс данных и переобучение.

Хотя наша доработанная модель не превзошла эталонную модель по общей точности, она продемонстрировала свои достоинства по другим ключевым показателям производительности, таким как F1-score и AUC-ROC. Это путешествие подходит к концу, но впереди еще много интересного! Далее: мы создадим API для нашей модели и продолжим тонкую настройку ее производительности. Оставайтесь с нами для следующего приключения!

Ищете код? Вы можете найти все подробности на моем GitHub. Теперь отправляемся в плавание!

GitHub и Набор данных

Введение🎉

Вы когда-нибудь задумывались, как банки решают, кому ссужать деньги? Знаешь, помимо того, что просто бросаешь дротики в мишень и надеешься на лучшее? Что ж, пристегнитесь, потому что мы собираемся отправиться в захватывающее путешествие в мир логистической регрессии. Это может показаться причудливым термином, предназначенным для людей в лабораторных халатах, но держитесь меня, и вы моментально будете использовать его, чтобы произвести впечатление на своих друзей на званых обедах!

Представьте, что вы человек в банке, который должен решить, выдавать кредит или нет. Непростая задача, не так ли? Я имею в виду, что ты не раздаешь здесь конфеты; мы говорим о серьезных деньгах! Итак, как мы можем избавиться от догадок в этом процессе? Что ж, вступайте в Scorecard Solution [1], супергерой банковского мира, спешащий спасти положение!

Этот не такой уж новый, но все же очень крутой инструмент использовался несколько раз (даже десятилетия), помогая банкам принимать более правильные решения и меньше ошибок (потому что кто хочет терять деньги, я прав?) [2 ]. А благодаря Python и API Scorecard Solution получил обновление до своих сверхспособностей. Но нашему суперинструменту тоже нужен супермозг, и здесь на помощь приходит логистическая регрессия [3].

Думайте о логистической регрессии как о Шерлоке Холмсе алгоритмов. Он тщательно изучает детали заемщика (входные данные) и использует свои дедуктивные способности для прогнозирования оценки (выходные данные). Чем выше счет, тем меньше шансов, что Скрудж Макдак потеряет свои монеты! И чем ниже оценка… ну, вы поняли.

Итак, готовы погрузиться в увлекательный мир логистической регрессии и системы показателей? Давайте сразу же вспомним, что даже Шерлок Холмс не решал свои дела в одиночку, у него был Ватсон. Итак, давайте станем Ватсонами друг для друга в этом захватывающем приключении!

Набор данных и функции🧭

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

Представьте, что вы моряк в открытом море. Вы бы не осмелились отправиться в плавание без своих карт и компаса, не так ли? Конечно, нет! То же самое и в нашем путешествии — наш набор данных — это наша карта, а наши функции — это наш компас. Наш набор данных для этого путешествия был щедро предоставлен Международным банком реконструкции и развития с колоссальными 9012 кредитами из стран со всего мира. Нет, мы не плывем вслепую, друзья мои!

Как скажет вам любой бывалый моряк, не все части карты одинаково важны. Точно так же нам пришлось избавиться от некоторых столбцов в нашем наборе данных — тех, в которых отсутствовало более 50% значений. Думайте об этом как о расхламлении своего гаража. Вы бы не оставили сломанный велосипед, не так ли? В том же ключе мы избавились от этих колонок, потому что они на самом деле ничего нам не говорили.

Итак, теперь мы очистили нашу карту и имеем четкое представление о том, куда мы плывем. Но прежде чем мы отправимся в плавание, нам предстоит еще многое узнать! Именно здесь на сцену выходит исследовательский анализ данных (EDA). Думайте об EDA как о нашем зорком наблюдателе, сканирующем горизонты нашего моря данных, чтобы найти любые тенденции, закономерности или корреляции, которые могут помочь нам в нашем путешествии.

Ахой! Прежде чем мы начнем разделять наши кредиты на «хорошие» и «плохие», давайте сделаем шаг назад и оценим данные в их первоначальном, нетронутом виде. В конце концов, каждый опытный моряк знает, как важно понимать естественный рельеф суши (или моря, в данном случае).

Во-первых, давайте посмотрим на распределение наших кредитных статусов. Думайте об этом как о понимании различных типов рыб в нашем море данных. Каждая рыба (или статус кредита) добавляет свой уникальный вкус к нашему супу данных, и понимание их распределения помогает нам лучше понять наш набор данных.

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

А теперь помните, когда мы делили наши кредиты на «плохие» и «хорошие»? Вот откуда это происходит. Кредиты, которые были «полностью аннулированы» или «прекращены», были помечены как «плохие», злодейские акулы нашего моря, а те, которые были «полностью погашены», были помечены как «хорошие», дружелюбные дельфины нашего океана данных.

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

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

После того, как мы изучили нашу карту и отметили регионы, пришло время собрать нашу команду кредитов. Но вот в чем дело — не все члены экипажа созданы равными. В море кредитов у нас есть несколько озорных пиратов («плохие» кредиты), несколько верных моряков («хорошие» кредиты) и несколько человек, которые все еще находят свои морские ноги.

Эти неопределенные кредиты все еще продолжаются, и мы пока не можем точно сказать, станут ли они пиратами или моряками. Таким образом, подобно эксклюзивному членскому клубу, мы решили включить в наш анализ только кредиты, которые завершили свое путешествие. Это означает, что мы пометили кредиты, которые были «Полностью аннулированы» или «Прекращены», как «плохие», а «Полностью погашенные» кредиты — как «хорошие».

Остальные, незаконченные путешествия, остались за бортом нашей лодки. Мы сделали это, потому что включение их могло сбить наш анализ с курса. В конце концов, нас интересует конечный результат кредитов, а не тех, которые все еще плывут. Это как пытаться предсказать конец фильма, когда вы только на полпути — это просто не работает!

Теперь наш собранный экипаж был немного несбалансирован — у нас было много верных матросов и мало пиратов. Это похоже на фильм о супергероях со всеми героями и без злодеев, ему не хватает немного драмы, верно? Но мы решили придерживаться этого, потому что хотели увидеть реальную тенденцию в кредитном море.

Присмотревшись повнимательнее, мы изучили информационную ценность (IV) и вес доказательств (WoE), важнейшие инструменты в нашем навигационном наборе, для каждой функции [5]. Точно так же, как моряк использует компас и карту для навигации в открытом море, мы используем WoE и IV для навигации в глубоком океане данных.

Вес доказательств (WoE) рассчитывается как натуральный логарифм доли хороших результатов над плохими результатами. В математических терминах для каждого бина:

Это говорит нам о том, какие группы с большей вероятностью покажут «хорошие» результаты. Думайте об этом как о нашем надежном компасе, помогающем нам определить направление, в котором лежат «хорошие» кредиты.

Информационная ценность (IV), с другой стороны, измеряет общую силу предиктора. Он рассчитывается как сумма разностей между пропорциями хороших и плохих результатов, умноженных на WoE. Считайте это нашей морской картой, показывающей нам, насколько полезна каждая функция для прогнозирования результатов кредита.

После того, как мы рассчитали WoE и IV, мы сортируем наши функции по разным корзинам, примерно так, как пират сортирует свои сокровища!

Точно так же, как пиратская карта ведет к спрятанным сокровищам, этот график WoE помогает нам обнаружить скрытые закономерности в наших данных!

Вместо того, чтобы оставить функции как есть, мы немного преобразовали их с помощью одноразового кодирования. Как будто наше сокровище преобразилось!

Помните, каждое эпическое путешествие начинается с отчаливания от берега. Итак, давайте поднимем паруса и отправимся в наше информационное приключение! Если вы когда-нибудь почувствуете, что плывете по течению в этом море информации, помните, что мы все в одной лодке, и никто не останется позади! Якоря взвешиваются, мои коллеги-исследователи данных!

Методология⚙️

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

Здесь мы выбрали галантный корабль под названием Логистическая регрессия. Вы спросите, почему логистическая регрессия? Ну представьте себе — это не просто корабль, это корабль со встроенным детектором сокровищ. С помощью логистической регрессии мы можем извлечь логарифмические шансы для каждой функции, что может сделать не каждый корабль машинного обучения (или алгоритм) (алгоритмы на основе дерева не могут этого сделать) [4 ].

Теперь я знаю, что это звучит как космический корабль прямо из научно-фантастического фильма, но поверьте мне, это проще, чем кажется. Логистическая регрессия похожа на дружелюбного осьминога — входы — это щупальца, а выход — тело. Каждое щупальце (или входная переменная) влияет на тело (или результат), точно так же, как каждая характеристика кредита может влиять на его риск.

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

Формула для логистической регрессии определяется следующим образом:

Вот краткое описание формулы:

  • «Yi» — это наша зависимая переменная — оценки кредитного риска, которые мы пытаемся предсказать.
  • «B0» — пересечение популяции Y. Представьте его как отправную точку нашего путешествия.
  • «B1» — коэффициент наклона совокупности. Вы можете думать об этом как о ветре в наших парусах, несущем нас к месту назначения.
  • «Xi» представляет наши независимые переменные — функции из нашего набора данных. Это координаты на нашей карте.
  • «Ei» — случайная ошибка. Это как непредсказуемая погода в открытом море, которая может повлиять на наш курс.

Принимая во внимание все эти факторы, наша модель логистической регрессии задает курс и ведет нас к нашей цели — точному прогнозированию показателей кредитного риска!

Теперь помните, как мы сказали, что выбрали логистическую регрессию, потому что она позволяет нам извлекать логарифмические шансы? Давайте немного углубимся в то, что это значит.

В мире статистики шансы — это способ представления вероятности. Если мы прогнозируем, является ли ссуда «хорошей» или «плохой», шансы в пользу «хорошей» ссуды будут равны вероятности того, что ссуда будет «хорошей» (P), деленной на вероятность того, что ссуда будет «хорошей». плохой' (1 — П).

Мы можем представить это математически как:

Где:

  • P — вероятность того, что ссуда будет «хорошей».
  • 1 — P — вероятность того, что кредит «плохой».

Взятие натурального логарифма шансов дает нам логарифм шансов или логит.

Это уравнение говорит нам, что для каждого увеличения нашего предиктора на единицу логарифмические шансы исхода («хороший» кредит) увеличиваются в B1 раз, при условии, что все остальные переменные остаются постоянными.

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

Теперь, если вы следили за нашей аналогией с парусным спортом, вам может быть интересно, как мы переходим от логарифмических шансов к решению, является ли кредит «хорошим» или «плохим»? Ответ заключается в элегантной математической функции, известной как сигмовидная функция.

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

Вот как это работает:

В этой формуле «e» — это основание натурального логарифма, а «Logit» или (x) — результат нашей модели логистической регрессии. Что делает это уравнение, так это то, что оно берет логит (который может варьироваться от отрицательной бесконечности до положительной бесконечности) и сжимает его в диапазоне от 0 до 1.

Это сжатое значение представляет собой вероятность того, что данный кредит будет «хорошим». Если вероятность ближе к 1, мы можем с уверенностью сказать, что кредит «хороший». Если он ближе к 0, то кредит «плохой».

Давайте визуализируем это с помощью графика сигмовидной функции:

Как видите, сигмовидная функция создает S-образную кривую. На этой кривой вы можете видеть точки 0 и 1, представляющие «плохие» и «хорошие» кредиты соответственно.

Благодаря сигмовидной функции наша модель логистической регрессии полностью оснащена для прогнозирования того, является ли кредит «хорошим» или «плохим» на основе вероятности. Это сердце нашего приключения с данными, используя математику, чтобы раскрыть тайны кредитных рисков!

Все руки на палубе! Когда наша карта нанесена на карту, а наш корабль готов, пришло время поднять паруса и плыть по захватывающим волнам нашего эксперимента! Именно здесь мы увидим воплощение в жизнь нашей тщательной очистки данных и умного построения моделей. Приготовьтесь сняться с якоря и отправиться в волнующие воды экспериментов!

Эксперимент🎯

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

Ладно, экипаж! После обучения нашей модели логистической регрессии пришло время посмотреть, как она себя ведет в своем первом путешествии. Представьте себе это как наше первое путешествие. Мы скоро узнаем, насколько хорошо подготовлен наш корабль.

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

В нашем первом путешествии было несколько ухабов. Наша модель, как моряк-новичок, смогла обнаружить только 7 «плохих» кредитов из 90 в тестовых данных. Это скорее опыт обучения, чем победа, не так ли?

Однако во время обучения наша модель выглядела как бывалый моряк, выявив 33 «плохих» кредита из 194. Как будто ей комфортнее в знакомых водах, но возникают трудности при выходе на неизведанную территорию тестовых данных. Это несоответствие указывает на распространенное явление, известное как переобучение.

Представьте себе моряка, который превосходно плывет в своих родных водах, но терпит неудачу в неведомых морях. Это переобучение для вас! Наша модель настолько хорошо изучила обучающие данные, что спотыкается, когда сталкивается с новыми, невидимыми данными (тестовый набор).

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

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

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

В нашем случае мы призвали могущественного союзника моряка — Байесовский поиск. Несмотря на загадочное название, это не поиск скрытого залива (хотя из этого получилась бы захватывающая история!), а метод выбора лучших настроек для нашей модели логистической регрессии. Байесовский поиск похож на старого мудрого моряка, который учится на прошлых рейсах, чтобы принимать более обоснованные решения в будущем.

Но даже самому хорошо настроенному кораблю нужен хороший экипаж. И точно так же, как команда отрабатывает свои обязанности перед отплытием, наша модель нуждается в репетиции перед большим выступлением. Вот почему мы используем технику, известную как перекрестная проверка. В нашем случае мы выбрали 5-кратную перекрестную проверку, что похоже на пять разных тренировок или репетиций для нашей модели.

Вам может быть интересно, почему 5 раз? Что ж, это Златовласка перекрестной проверки — не слишком маленькая, чтобы она стала бессмысленной, и не слишком большая, чтобы требовать больших вычислительных ресурсов. Это правильно!

После репетиции нам нужно оценить производительность нашей модели. Помните миссию нашей модели: классифицировать кредиты как «хорошие» или «плохие». Чтобы оценить, насколько хорошо работает наша модель, обратимся к Точности — компасу моряка! Вот как мы это вычисляем:

С компасом в руках мы прошли наш первый рейс и настроили паруса. Наивная эталонная модель, похожая на простую парусную лодку, показала точность 95,87 %. Наша модель, больше похожая на точно настроенную шхуну, достигла чуть меньшей точности 95,38%. Хотя это может быть не флагман, который мы имели в виду, он показал нам, что это судно, которое нельзя недооценивать.

Хотя он не превзошел эталонную модель по общей точности, наш корабль продемонстрировал свои достоинства в неспокойных водах обнаружения «плохих» кредитов. Благодаря тонкой настройке наша модель стала более квалифицированной в обнаружении «плохих» кредитов, правильно прогнозируя 11 из 90. Это улучшение, признак того, что наша модель учится и адаптируется!

Кроме того, давайте не будем забывать нашу оценку F1, сбалансированную меру точности и отзыва. Наша доработанная модель набрала 94,12 %, превысив 93,98 % базовой модели. В море машинного обучения каждая мелочь имеет значение!

И хорошие новости на этом не заканчиваются. Область под кривой ROC (AUC-ROC), еще один ключевой показатель эффективности, также улучшилась. Наша доработанная модель набрала 55,74 %, опередив 53,73 % базовой модели.

Несмотря на бурные воды, наш корабль демонстрирует свою доблесть. И хотя в этом путешествии было немало проблем, именно из-за этих проблем стоит отправиться в путешествие.

Но подождите, это еще не все! Мы не остановимся только на оптимизации модели. Мы собираемся отправиться в увлекательное путешествие по созданию API для нашей модели. Но это другая история для другого дня.

А пока давайте поднимем якорь и отправимся к горизонту нашего заключения и будущей работы. Помните, что в огромном океане машинного обучения всегда есть новые моря, которые нужно исследовать, новые проблемы, которые нужно преодолеть, и новые сокровища, которые нужно найти! 😁

Выводы💡

  • Наше путешествие началось с благородного стремления построить модель машинного обучения для прогнозирования кредитного риска. Мы выбрали логистическую регрессию, надежный, испытанный корабль для этого путешествия.
  • По пути нам пришлось пройти через сложные воды очистки данных и разработки функций. Наши карты и инструменты представляли собой вес доказательств и информационную ценность, помогая нам различать наиболее важные особенности.
  • Учебное путешествие принесло немало проблем. Наша модель, изначально слишком самоуверенная с «хорошими» кредитами, должна была научиться распознавать более суровые моря «плохих» кредитов. Но с тонкой настройкой он улучшил обнаружение «плохих» кредитов с 7 из 90 до 11 из 90. Неплохой прогресс, а?
  • Хотя наша доработанная модель не превзошла эталонную модель по общей точности, она показала свои преимущества в других областях. Оценка F1, сбалансированная мера точности и отзыва, улучшилась до 94,12%. Площадь под кривой ROC (AUC-ROC), еще один ключевой показатель эффективности, также улучшилась до 55,74%.

Будущая работа 🚀

  • Это путешествие может подойти к концу, но истинный искатель приключений знает, что на горизонте всегда ждут новые приключения. Имея больше времени, ресурсов и еще более сбалансированный набор данных, мы можем дополнительно настроить нашу модель для повышения ее производительности.
  • Как насчет погружения в область ансамблевых методов? Объединение разных моделей потенциально может привести нас к большим сокровищам!
  • Когда мы состыкуемся с этим кораблем, нас ждет еще одно захватывающее путешествие: создание API для нашей модели. Этот API позволит легко использовать нашу модель в реальных приложениях, что сделает наше путешествие осмысленным за пределами этого исследования.
  • Наконец, вселенная машинного обучения огромна и бесконечна, с бесконечными возможностями для исследований и открытий. Давайте поддержим наше любопытство, продолжим учиться и никогда не перестанем исследовать. Вперед к следующему приключению!

Ссылки 📚

[1] Методы кредитного скоринга: последние тенденции и моменты, которые следует учитывать

[2] Кредитный скоринг, статистические методы и критерии оценки: обзор литературы

[3] Оценка системы показателей кредитного риска методом логистической регрессии

[4] Система кредитных показателей на основе логистической регрессии со случайными коэффициентами

[5] Смешанная модель кредитного скоринга логистической регрессии и веса доказательств на фоне больших данных

Следующая статья

Навигация по морю данных: подробная карта нашего путешествия по моделированию кредитных рисков