Модернизация скорингового процесса в банке ХХХБ

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

Рубрика Банковское, биржевое дело и страхование
Вид дипломная работа
Язык русский
Дата добавления 15.09.2018
Размер файла 1,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Правительство Российской Федерации

Федеральное государственное автономное образовательное

учреждение высшего образования

Национальный исследовательский университет “Высшая школа экономики”

Факультет бизнеса и менеджмента
Образовательная программа “Бизнес-информатика”

Выпускная квалификационная работа студента 4 курса бакалавриата группы 144

Модернизация скорингового процесса в банке XXX

Сергачев Дмитрий Александрович

Москва 2018

Оглавление

  • 1. Исследование текущих подходов к сегментации клиентов и к методам построения скоринговых карт
    • 1.1 Анализ вариантов сегментации клиентов банка
    • 1.2 Определение особенностей данных сегментов
    • 1.3 Анализ текущих подходов к построению скоринговых карт
    • 1.4 Описание критериев оценки работоспособности алгоритмов машинного обучения для модели скоринговой карты
    • 1.5 Анализ проблем разработки и рисков внедрения скоринговых карт
    • 1.6 Описание жизненного цикла скоринговой карты
  • 2. Построение скоринговой карты
    • 2.1 Описание сущности скоринговой карты
    • 2.2 Определение используемых инструментов и подготовка данных для обучения моделей
    • 2.3 Включение переменных в скоринговую карту
    • 2.4 Формирование массива с данными, которые были выбраны для обучения
    • Вставка программного кода 39
    • 2.5 Построение моделей классификации и их анализ
    • 2.6 Оценка работоспособности моделей: расчет скор балла
  • 3. Анализ полученных моделей
    • 3.1 Обоснование итогового выбора модели
    • 3.2 Оценка работоспособности модели: коэффициент Gini
    • 3.3 Проверка калибровки модели на фактических данных
  • Заключение
  • Список используемой литературы
  • Введение
  • Тема данной работы - “Модернизация скорингового процесса в банке: разработка новой скоринговой карты для application-scoring'а”

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

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

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

Существуют четыре вида скоринга:

§ application-scoring (дословный перевод с английского - “скоринг заявки, обращения”) - оценка кредитоспособности заемщиков при выделении кредита. Это самый распространенный и известный клиентам вид скоринга. В его основе лежат первичный сбор анкетных данных заемщика, их обработка компьютером и вывод результата: предоставлять заем или нет;

§ collection-scoring - система скоринга на стадии работы с невозвращенными займами. Определяет приоритетные действия сотрудников банка для возврата “плохих” кредитов. Фактически программа позволяет предпринять ряд шагов по работе с невозвращенными долгами, например, от первичного предупреждения до передачи дела коллекторскому агентству. Считается, что в процессе такой обработки порядка 40% клиентов ссылаются на забывчивость и возвращают кредит;

§ behavioral-scoring, “скоринг поведения” - оценка наиболее вероятных финансовых действий заемщика. Такая система дает возможность прогнозировать изменение платежеспособности заемщика, корректировать установленные для него лимиты. Основой анализа могут служить действия клиента за определенный период, например, операции по кредитной карте;

§ fraud-scoring - статистическая оценка вероятности мошеннических действий со стороны потенциального заемщика. Такой скоринг, как правило, используется совместно с другими видами исследования клиентов. При этом считается, что до 10% невозвратов по кредитам связаны в России с откровенным мошенничеством и этот показатель растет.

В данной работе речь пойдет о совершенствовании application-scoring'а, а точнее - модернизация модели для скоринговой карты.

Для банка очень важно правильно сегментировать клиентов, так как если клиента определить неправильно, то:

1. Хороший клиент, определенный как плохой - потерянный клиент для банка

2. Плохой клиент, определенный как хороший - потеря средств для банка (не возврат кредита)

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

4. Недооцененный клиент - потеря объемов выданных кредитов и прибыльности банка соответственно.

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

Объект

Автоматизация процессов скоринговых систем посредством разработки и модернизации скоринговой карты

Предмет

Процесс скоринга в банковской системе

Цель

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

Задачи

1) Исследование текущих сегментаций клиентов и подходов к построению скоринговых карт

2) Исследование эффективности алгоритмов машинного обучения для задачи построения скоринговой карты

3) Анализ результатов исследования и выбор наилучшей модели

1. Исследование текущих подходов к сегментации клиентов и к методам построения скоринговых карт

1.1 Анализ вариантов сегментации клиентов банка

Разделить клиентов в банке, опираясь на практику можно следующим образом, где 30% будут физические лица, оставшиеся 70% юридические лица. Таким образом, всех физических лиц можно рассматривать как реальных и потенциальных клиентов, куда будут входить студенты, средний класс и пенсионеры. Теперь стоить рассмотреть данные группы более подробно [4].

Первоочередная сегментация банка XXX выглядит следующим образом:

· Собственные клиенты банка, не имеющие ранее никаких задолженностей

· Собственные клиенты банка, имеющие задолженности ранее или в текущий момент

· Клиенты других банков, не имеющие задолженностей в бюро кредитных историй

· Клиенты других банков, имеющие задолженности в бюро кредитных историй

· Клиенты, не имеющие кредитной истории

Приведенные выше сегменты включают в себя два признака влияющие на определение скора клиента (score в переводе с англ. - балл) одновременно: причастность клиента к банку по принципу “свой\чужой” и причастность к задолженностям - “имел задолженности\ не имел задолженности”. Далее социальная сегментация.

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

· Пластиковая карта;

· Круглосуточный банкомат;

· Выдача маленькой купюры в банкомате.

Если выполнять условия можно не только приобрести новых клиентов, но и переманить чужих.

Средний класс - в общем плане тратят больше, однако, заработок не превышает расход. Такая аудитория склонна к сбережениям своего дохода, так же стремятся заработать на своем заработке, пуская его в оборот. В связи с этим их заинтересует такой вид услуг [2]:

· Предложение игры на бирже;

· Устанавливать систему “Клиент-Банк”, чтобы оплачивать ЖКХ и перечислять другие виды платежей;

· Конверсионная сделка;

· Наиболее льготное условие по срочным вкладам;

· Оплачивать кредиты по наиболее выгодным условиям, при заключениях сделки с организациями;

· Пластиковая карта используется во многих торговых точках.

Пенсионеры - публика, которая тратит деньги только по нужде. Как правило, основная часть их денег идет на расходы по проживанию и на продукты питания, лекарственные средства. Хоть и деятельность с такой аудиторией не будет приносить много прибыли, однако, репутация банка будет возрастать, ведь он выполняет не только свои основные функции, но и создает комфортное условие для пожилой публики [5].

Юридические лица подразделяются на бизнес:

· Малый;

· Средний;

· Крупный.

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

1.2 Определение особенностей данных сегментов

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

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

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

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

Сегментировать рынок по банковским услугам необходимо для качественного анализа по положению банка на рынке, в сравнении с его конкурентами. [1]

1.3 Анализ текущих подходов к построению скоринговых карт

Сам по себе скоринговый процесс различается от банка к банку, однако существует примерно одинаковая структура [8]:

1. Заполнение анкеты\заявки на кредит - ввод данных клиента.

2. Проверка клиента по черным спискам.

3. Проверка клиента по кредитным бюро.

4. Расчет скора на основе скоринговой карты.

5. Вынесение финального решения, расчет ставки и лимита.

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

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

Вторым этапом уже является добыча данных и их наличие. Если рассматривать во временном промежутке данный процесс, то он будет самым длительным из всех этапов, так как он требует привлечение огромных ресурсов. Тут можно определить, насколько можно выполнить проект по созданию скоринговых карт, выделить по основным параметрам. В параметр входит исключение, определение целей, выборка и окно созревания. Для правильного строения таких карт, претенденту хватит двух тысяч негативных и положительных записей, хаотично выбранных для скоринговых карт из общего набора заемщиков, которые получили кредит по истечению некого периода времени. Команда по проекту обязана определять, как надежна внутренняя информация, предназначенная для разработок карт. Данные, которые указаны непосредственно заемщиком, иногда оказываются неверными, когда информация от кредитных агентств, сведение о регистрациях имущества, финансовые отчетности будут наиболее точными и будут действительно идти в использование. Если информация о заемщике, которая предоставлена филиалом ненадежна, то карта возможно будет строиться лишь на этой информации от кредитных организаций. Банки сами решают, как им разрабатывать карту, основываясь лишь на внутренние данные, либо добавлять внешний источник. [6]

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

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

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

Зачастую эта карта запускает от 5 до 15 параметров. Узнать, какие это параметры невозможно, так же, как и узнать по какому принципу происходит оценка.

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

Сегодня наиболее популярным методом построения скор карты является DecisionTree. Поэтапный подход к сегментации с целью выяснить наиболее привлекательные сегменты и на основании этих данных причислять скор балл - сегодня один из самых простых и популярных решений.

Рисунок 1

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

Она может включать неограниченное количество переменных и при этом проста в модификации и изменении.

1.4 Описание критериев оценки работоспособности алгоритмов машинного обучения для модели скоринговой карты

Существует множество проверок скоринговых карт, однако для определения работоспособности алгоритма будем опираться на базовые знания экспертов (было опрошено 3 скоринговых эксперта) и методические материалы [10], которые позволяют выделить 3 основных фактора об успешности модели:

· Коэффициент Gini - мера оценки качества скоринговой модели. Позволяет судить о разделяющей способности модели, позволяющей отличать хороших и плохих клиентов. Данный коэффициент должен находиться в интервале от 0 до 1, где 0 - это отсутствие разделяющего эффекта, а 1 - идеальный разделяющий эффект. Каждый процент коэффициента Джини приносит банкам огромное количество денег, однако не только эта метрика важна при построении скор карты. Помимо этого, важны веса и корреляция параметров скоринговой карты, выполнение других статистических условий, однако в конечном счете скор карты сравнивают по показателю Джини (Коэффициент Джини -- статистический показатель степени расслоения общества данной страны или региона по отношению к какому-либо изучаемому признаку). Поэтому для банков важна правильная сегментация клиентов. На сегодняшний день для скоринговой карты нормальным показателем Gini считается 30% и более, чем старше скоринговая карта становится, тем сильнее этот показатель далек от правды, так как клиенты со временем меняют свое поведение - в этом заключается несовершенство данного процесса и необходимость постоянной модернизации.

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

· Совпадение прогнозного и фактического значений модели. Говорит о правильной калибровке и работоспособности модели. Измеряется в отклонении Estimate - преобразованная величина PD (predict default).

1.5 Анализ проблем разработки и рисков внедрения скоринговых карт

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

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

Сначала нужно разобраться и осознать, что есть скоринг. Когда банки приходят к решению о работе на рынке по кредитованию физ. лиц, им нужно хорошо проинформировать своих работников и привести их знания к соответствующему уровню. Будет правильно регулярно повышать квалификацию и общие знания сотрудников, с помощью семинаров, лекций, тренингов и т.д. [9]

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

Таблица 1

Плюсы

Минусы

Нет необходимости увеличивать штат

Риск для конфиденциальности данных

Сокращение издержек на содержание ИТ отдела

Нет возможности проверить качество результата, так как информация о других результатах аутсорс компании находится под коммерческой тайной

Уверенность в лучшем и актуальном решении на рынке сегодня

Риск банкротства или исчезновения аутсорсинговой компании

Экономия времени при создании и обеспечении

Высокая стоимость модификаций и обновлений скоринговой карты

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

1.6 Описание жизненного цикла скоринговой карты

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

1. Подготовить и спланировать

· Составить бизнес план;

· Определить организационные цели;

· Составить план по проекту;

· Определить риски по проекту;

· Определить состав специалистов и обязанностей.

2. Анализировать данные и параметры по проекту

· Анализировать доступность и качество информации;

· Собрать данные, чтобы определить параметры;

· Определить параметры по проекту;

· Определить цель;

· Исключение;

· Пересмотреть план по внедрению.

3. Создать базу по данных и разработать модель

· Сформулировать требования к процессу выборки;

· Поправить на априорную вероятность.

4. Разработать скоринговую карту

· Изучить данные;

· Определить пропущенные значения и выбросы;

· Анализировать исходные характеристики и отклоненные заявки;

· Создать предварительную скоринговую карту;

· Выбрать и контролировать скоринговую карту.

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

· Отчет по параметрам.

6. Внедрить скоринговую карту

· Контролировать до внедрения;

· Разрабатывать стратегию;

· Установить уровень отсечения;

· Корректировка.

7. Действие по внедрению

· Отчет по мониторингу результативности.

2. Построение скоринговой карты

2.1 Описание сущности скоринговой карты

Наименование скоринговая карта исходит из истории, так как первоначально банки принимали решение основываясь на элементарном подсчете характеристик клиентов и присвоения каждой из них какого-то балла. [3]

Таблица 2

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

2.2 Определение используемых инструментов и подготовка данных для обучения моделей

В рамках ВКР будет проведен анализ данных по заемщиками использование алгоритмов машинного обучения GradientBoostingClassifier, LogisticRegression, RandomForestClassifier, KNeighbors.

Для анализа набора данных будет использован язык python с библиотеками NumPy, Pandas.

Для оценки модели будет использоваться характеристика AreaUnder ROC Curve.

Загрузка необходимых библиотек

In [1]:

1 importnumpyasnp

2 importpandasaspd

3

4 importmatplotlib.pyplotasplt

5 importseabornassns

6

7 %matplotlibinline

8 sns.set(style='white', font_scale=0.9)

Вставка программного кода 1

Чтение данных из файла”loan.csv”

In [2]:

dataset = pd.read_csv('loan.csv')

Вставка программного кода 2

In [3]:

pd.set_option('display.max_columns', len(dataset.columns))

2 dataset

Out[3]:

id

member_id

loan_amnt

funded_amnt

funded_amnt_inv

termint_rate i

0

1077501

1296599

5000.0

5000.0

4975.000000

36

10.65

months

1

1077430

1314167

2500.0

2500.0

2500.000000

60

15.27

months

2

1077175

1313524

2400.0

2400.0

2400.000000

36

15.96

months

3

1076863

1277178

10000.0

10000.0

10000.000000

36

13.49

months

Вставка программного кода 3

In [4]:

pd.reset_option('display.max_columns')

Вставка программного кода 4

Заполнение недостающих данных:

Verification_status_joint будет заполнен основываясь на verification_status, поскольку эти значения взаимозависимы.

Пустые значения NaN заменяются на Unknown.

In [5]:

dataset['verification_status_joint'].fillna(dataset['verification_status']

Вставка программного кода 5

In [6]:

1 strColumns = dataset.select_dtypes(include=['object']).columns.values

2 dataset[strColumns] = dataset[strColumns].fillna('Unknown')

Вставка программного кода 6

Проверка корректности замены значений NaN:

In [7]:

dataset.select_dtypes(exclude=[np.number]).isnull().sum()

Out[7]:

term

0

grade

0

sub_grade

0

emp_title

0

emp_length

0

home_ownership

0

verification_status

0

issue_d

0

loan_status

0

pymnt_plan

0

url

0

desc

0

purpose

0

title

0

zip_code

0

addr_state

0

earliest_cr_line

0

initial_list_status

0

last_pymnt_d

0

next_pymnt_d

0

last_credit_pull_d

0

application_type

0

verification_status_joint

0

dtype: int64

Вставка программного кода 7

Исправление недостающих значений (цифровые):

Сначала проводится проверка количества отсутствующих значений для каждого из столбцов.

In [11]:

1 dataset.select_dtypes(include=[np.number]).isnull().sum()

Out[11]:

id

0

member_id

0

loan_amnt

0

funded_amnt

0

funded_amnt_inv

0

int_rate

0

installment

0

annual_inc

4

dti

0

delinq_2yrs

29

inq_last_6mths

29

mths_since_last_delinq

454312

mths_since_last_record

750326

open_acc

29

pub_rec

29

revol_bal

0

revol_util

502

total_acc

29

out_prncp

0

out_prncp_inv

0

total_pymnt

0

total_pymnt_inv

0

total_rec_prncp

0

total_rec_int

0

total_rec_late_fee

0

recoveries

0

collection_recovery_fee

0

last_pymnt_amnt

0

collections_12_mths_ex_med

145

mths_since_last_major_derog

665676

policy_code

0

annual_inc_joint

886868

dti_joint

886870

acc_now_delinq

29

tot_coll_amt

70276

tot_cur_bal

70276

open_acc_6m

866007

open_il_6m

866007

open_il_12m

866007

open_il_24m

866007

mths_since_rcnt_il

866569

total_bal_il

866007

il_util

868762

open_rv_12m

866007

open_rv_24m

866007

max_bal_bc

866007

all_util

866007

total_rev_hi_lim

70276

inq_fi

866007

Вставка программного кода 8

Первые столбцы, выбранные для обновления - year_inc_joint, dti_joint иverification_status_joint. Для отдельных учетных записей они пусты, поэтому мы будут заполняться их отдельными значениями для отдельных учетных записей.

In [8]:

dataset[dataset['application_type'] != 'INDIVIDUAL']['annual_inc_joint'].i

Out[8]:

0

Вставка программного кода 9

In [9]:

1 dataset['annual_inc_joint'].fillna(dataset['annual_inc'], inplace=True)

2 dataset['dti_joint'].fillna(dataset['dti'], inplace=True)

Вставка программного кода 10

Для остальных значений недостающие данные будут заполнены средними значениями:

In [10]:

1 strColumns = dataset.select_dtypes(include=[np.number]).columns.values

2 dataset[strColumns] = dataset[strColumns].fillna(dataset[strColumns].mean(

Вставка программного кода 11

Создание признака Дефолта:

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

In [11]:

1

dataset['loan_status'].value_counts()

Out[11]:

Current

601779

FullyPaid

207723

ChargedOff

45248

Late (31-120 days)

11591

Issued

8460

InGracePeriod

6253

Late (16-30 days)

2357

Does not meet the credit policy. Status:FullyPaid

1988

Default

1219

Вставка программного кода 12

Необходимо избавиться от статусов кредитов:

1. Issued

2. Does not meet the credit policy. Status:Fully Paid

3. Does not meet the credit policy. Status:Charged Off

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

In [12]:

1 dataset = dataset[~dataset['loan_status'].isin(['Issued',

2

'Does not meet the credit policy. Status:

3

'Does not meet the credit policy. Status:

4

])]

Вставка программного кода 13

Для кредитов, имеющих статус 'Current', 'FullyPaid', 'InGracePeriod' значение дефолта присваивается 0, для всех остальных - 1.

In [13]:

1 defCreateDefault(Loan_Status):

2 if Loan_Status in ['Current','Fully Paid','In Grace Period']:

3 return0

4 else:

5 return1

6

7 dataset['Default'] = dataset['loan_status'].apply(lambdax: CreateDefault(

Вставка программного кода 14

Изучение других переменных:

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

In [14]:

1 dataset['term'].value_counts()

Out[14]:

36

months

612705

60

months

263465

Name: term, dtype: int64

Вставка программного кода 15

Только два вида срока займов - это кредит сроком на 3 или 5 лет.

In [15]:

1 dataset['emp_length'].value_counts()

Out[15]:

10+ years

288282

2

years

77818

< 1 year

69360

3

years

69078

1

year

56199

5

years

55022

4

years

51835

7

years

44229

Unknown

44160

8

years

43420

6

years

42485

9

years

34282

Name: emp_length, dtype: int64

Вставка программного кода 16

Время работы на последнем месте необходимо преобразовать в числовое поле. Отсутствующие данные (Unknown) будут объединены со сроком <1 года, поскольку нет уверенности в продолжительности работы.

In [14]:

1 defEmpLength(emp_len):

2 ifemp_len[:2] =='10':

3 return10

4 elifemp_len[:1] in ['<','U']:

5 return0

6 else:

7 returnint(emp_len[:1])

8

9 dataset['Emp_Length_Years'] = dataset['emp_length'].apply(lambdax: EmpLen

Вставка программного кода 17

In [17]:

1 dataset['purpose'].value_counts()

Out[17]:

debt_consolidation

518319

credit_card

203771

home_improvement

51122

other

41990

major_purchase

16970

small_business

10104

car

8718

medical

8391

moving

5316

vacation

4660

house

3626

wedding

2291

renewable_energy

566

educational

326

Name: purpose, dtype: int64

Вставка программного кода 18

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

In [15]:

1 dataset['grade'].value_counts().sort_index()

Out[15]:

1. 146656

1. 251652

C 242759

D 137666

E 69576

F 22605

G5256

Name: grade, dtype: int64

Вставка программного кода 19

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

In [16]:

dataset['Earliest_Cr_Line_Yr'] = pd.to_numeric(dataset['earliest_cr_line']

Вставка программного кода 20

In [17]:

dataset['Earliest_Cr_Line_Yr'].isnull().sum()

Out[17]:

0

Вставка программного кода 21

In [18]:

dataset['Earliest_Cr_Line_Yr'] = dataset['Earliest_Cr_Line_Yr'].fillna(int

Вставка программного кода 22

In [19]:

1 dataset['Earliest_Cr_Line_Yr'].isnull().sum()

Out[19]:

0

Вставка программного кода 23

2.3 Включение переменных в скоринговую карту

Оценка кредита банком

In [21]:

1 nNoLate = len(dataset[dataset['Default'] == 0])

2 nLate =len(dataset[dataset['Default'] ==1]) 3

4 f, (ax1, ax2, ax3) = plt.subplots(1,3, sharey=True, figsize=(9,3)) 5

6 sns.barplot(x='grade', y='id', data=dataset,

7

estimator=lambda x: len(x) / (nLate+nNoLate) *

100,

8

ax=ax1, order=sorted(dataset['grade'].unique()),

palette='deep

9 sns.barplot(x='grade', y='id', data=dataset[dataset['Default'] == 0],

10

estimator=lambda x: len(x) /nNoLate*100,

11

ax=ax2, order=sorted(dataset['grade'].unique()), palette='deep

12 sns.barplot(x='grade', y='id', data=dataset[dataset['Default'] == 1],

13

estimator=lambda x: len(x) /nLate*100,

14

ax=ax3, order=sorted(dataset['grade'].unique()), palette='deep

16 ax1.set_title('Overall')

17 ax2.set_title('No Default')

18 ax3.set_title('Default')

19 ax1.set_ylabel('Percentage')

20 ax2.set_ylabel('')

21 ax3.set_ylabel('')

22

23 plt.tight_layout()

24 plt.show()

Вставка программного кода 24

График 1

Степень кредита - это оценка компанией вероятности возможного отказа по кредиту. Как и следовало ожидать, лучшие кредиты (A и B) имеют более высокий процент кредитов без дефолта, чем с дефолтом. C - примерно одинаковый процент дефолта и не дефолта, а наихудшие кредиты (D, E, F и G) имеют более высокий процент кредитов с дефолтом, чем без дефолта.

Сумма кредита

In [31]:

1 f, (ax1, ax2) = plt.subplots(2, 1, figsize=(7, 3))

2

3 sns.distplot(dataset[dataset['Default'] ==0]['loan_amnt'], bins=40, ax=ax 4 sns.distplot(dataset[dataset['Default'] ==1]['loan_amnt'], bins=40, ax=ax 5

6 ax1.set_title('No Default')

7 ax2.set_title('Default')

8

9 ax1.set_xbound(lower=0)

10 ax2.set_xbound(lower=0)

11 plt.tight_layout()

12 plt.show()

Вставка программного кода 25

График 2

In [32]:

1 ax1 = sns.violinplot(x='Default', y='loan_amnt', data=dataset)

2 ax1.set_ybound(lower=0)

3 plt.show()

Вставка программного кода 26

График 3

Дефолт и не дефолт аналогичное распределение по кредиту.

Срок кредита

In [33]:

1 nNoLate = len(dataset[dataset['Default'] == 0])

2 nLate =len(dataset[dataset['Default'] ==1]) 3

4 f, (ax1, ax2, ax3) = plt.subplots(1,3, sharey=True, figsize=(9,3)) 5

6 sns.barplot(x='term', y='id', data=dataset,

7

estimator=lambda x: len(x) / (nLate+nNoLate) *100,

8

ax=ax1, order=sorted(dataset['term'].unique()), palette='deep'

9 sns.barplot(x='term', y='id', data=dataset[dataset['Default'] == 0],

10

estimator=lambda x: len(x) /nNoLate*100,

11

ax=ax2, order=sorted(dataset['term'].unique()), palette='deep'

12 sns.barplot(x='term', y='id', data=dataset[dataset['Default'] == 1],

13

estimator=lambda x: len(x) /nLate*100,

14

ax=ax3, order=sorted(dataset['term'].unique()), palette='deep'

15

16 ax1.set_title('Overall')

17 ax2.set_title('No Default')

18 ax3.set_title('Default')

19 ax1.set_ylabel('Percentage')

20 ax2.set_ylabel('')

21 ax3.set_ylabel('')

22

23 plt.tight_layout()

24 plt.show()

Вставка программного кода 27

График 4

Долгосрочные кредиты (60 месяцев) составляют более высокий процент от дефолтов, чем недефолтные кредиты.

Процентная ставка

In [34]:

1 f, (ax1, ax2) = plt.subplots(2, 1, figsize=(7, 3))

2

3 sns.distplot(dataset[dataset['Default'] ==0]['int_rate'], bins=30, ax=ax1 4 sns.distplot(dataset[dataset['Default'] ==1]['int_rate'], bins=30, ax=ax2 5

6 ax1.set_title('No Default')

7 ax2.set_title('Default')

8

9 ax1.set_xbound(lower=0)

10 ax2.set_xbound(lower=0)

11

12 plt.tight_layout()

13 plt.show()

Вставка программного кода 28

График 5

In [37]:

1 ax1 = sns.boxplot(x='Default', y='int_rate', data=dataset)

2 ax1.set_ybound(lower=0)

3 plt.show()

Вставка программного кода 29

График 6

Дефолтные кредиты имеют более высокую процентную ставку, чем недефолтные кредиты.

In [38]:

1 ax1 = sns.boxplot(x='grade', y='int_rate', data=dataset, hue='Default',

2 order=sorted(dataset['grade'].unique()))

3 ax1.set_ybound(lower=0)

4 plt.show()

Вставка программного кода 30

График 7

C учетом оценки заемщика (так как это будет использоваться для расчета процентной ставки), дефолтные кредиты по-прежнему имеют более высокую процентную ставку, чем недискриминационные кредиты, за исключением оценок F и G.

Годовой доход:

In [39]:

1 ax1 = sns.boxplot(x='Default', y='annual_inc', data=dataset)

2 ax1.set_ybound(lower=0)

3 ax1.set_yscale('log')

4

5 plt.show()

Вставка программного кода 31

График 8

Дефолтные кредиты имеют более низкий годовой доход, чем недефолтные кредиты.

Отношение долга к доходам:

In [40]:

1 ax1 = sns.boxplot(x='Default', y='dti', data=dataset)

2 ax1.set_ybound(lower=0, upper=50)

3 plt.show()

Вставка программного кода 32

График 9

Дефолтные кредиты имеют более высокое отношение долга к доходам

Владение жильем:

In [41]:

1 nNoLate = len(dataset[dataset['Default'] == 0])

2 nLate =len(dataset[dataset['Default'] ==1]) 3

4 f, (ax1, ax2, ax3) = plt.subplots(1,3, sharey=True, figsize=(9,3)) 5

6 sns.barplot(x='home_ownership', y='id', data=dataset,

7

estimator=lambda x: len(x)

/ (nLate + nNoLate) * 100,

8

ax=ax1, order=['MORTGAGE',

'OWN', 'RENT'], palette='deep')

9 sns.barplot(x='home_ownership', y='id', data=dataset[dataset['Default'] ==

10

estimator=lambda x: len(x)

/ nNoLate * 100,

11

ax=ax2, order=['MORTGAGE',

'OWN', 'RENT'], palette='deep')

12 sns.barplot(x='home_ownership', y='id', data=dataset[dataset['Default'] ==

13

estimator=lambda x: len(x) /nLate*100,

14

ax=ax3, order=['MORTGAGE', 'OWN', 'RENT'], palette='deep')

15

16 ax1.set_title('Overall')

17 ax2.set_title('No Default')

18 ax3.set_title('Default')

19 ax1.set_ylabel('Percentage')

20 ax2.set_ylabel('')

21 ax3.set_ylabel('')

22

23 plt.tight_layout()

24 plt.show()

Вставка программного кода 33

График 10

Заемщики, имеющие арендованное жилье имеют более высокий процент дефолтных кредитов.

Стаж работы

In [42]:

1 nNoLate = len(dataset[dataset['Default'] == 0])

2 nLate =len(dataset[dataset['Default'] ==1]) 3

4 f, (ax1, ax2, ax3) = plt.subplots(1,3, sharey=True, figsize=(9,3)) 5

6 sns.barplot(x='Emp_Length_Years', y='id', data=dataset,

7

estimator=lambda x: len(x) / (nLate+nNoLate) *100,

8

ax=ax1, palette='deep')

9 sns.barplot(x='Emp_Length_Years', y='id', data=dataset[dataset['Default']

10

estimator=lambda x: len(x) /nNoLate*100,

11

ax=ax2, palette='deep')

12 sns.barplot(x='Emp_Length_Years', y='id', data=dataset[dataset['Default']

13

estimator=lambda x: len(x) /nLate*100,

14

ax=ax3, palette='deep')

15

16 ax1.set_title('Overall')

17 ax2.set_title('No Default')

18 ax3.set_title('Default')

19 ax1.set_ylabel('Percentage')

20 ax2.set_ylabel('')

21 ax3.set_ylabel('')

22

23 plt.tight_layout()

24 plt.show()

Вставка программного кода 34

График 11

Заемщики, проработавшие в компании более 10 лет, имеют ниже процент от общего дефолтных кредитов, чем недефолтных.

Открытие кредитной линии

In [43]:

1 ax1 = sns.boxplot(x='Default', y='Earliest_Cr_Line_Yr', data=dataset)

2 plt.show()

Вставка программного кода 35

График 12

2.4 Формирование массива с данными, которые были выбраны для обучения

In [20]:

1 dataset_inputs = dataset[['grade', 'loan_amnt', 'term', 'int_rate', 'annua

2 dataset_inputs_sample = dataset_inputs.sample(frac=0.1) 3 dataset_inputs_sample.head ()

Out[20]:

<...

grade

loan_amnt

termint_rate

annual_inc

dti

home_ownership

463712

B

6400.0

36

9.67

55000.00

15.93

MORTGAGE

months

169165

C

22800.0

60

16.29

51327.05

14.82

MORTGAGE

months

696642

F

19800.0

60

23.99

55000.00

26.01

MORTGAGE

months

303855

B

5600.0

36

11.67

84355.00

14.97

MORTGAGE


Подобные документы

  • Раскрытие сущности и изучение системы банковского кредитования в Российской Федерации. Анализ организации кредитования клиентов в банке на примере ЗАО ВТБ 24. Разработка мероприятий по расширению клиентской базы и совершенствованию процесса кредитования.

    дипломная работа [268,6 K], добавлен 27.07.2011

  • Изучение процесса кредитования юридических лиц в банке. Анализ проведения оценки кредитоспособности клиентов. Организационно-правовая и экономическая характеристика ОАО "Россельхозбанк". Разработка путей совершенствования управления кредитования.

    курсовая работа [74,1 K], добавлен 03.06.2015

  • Организация процесса кредитования юридических лиц в коммерческом банке. Методика оценки кредитоспособности юридического лица, используемая ЗАО "ГЛОБЭКСБАНКЕ" и его филиалами. Применение трендовой модели оценки риска при кредитовании юридических лиц.

    дипломная работа [1,0 M], добавлен 03.07.2012

  • Теоретические вопросы организации банковского кредитования и проблемы его развития. Экономическая сущность и этапы процесса кредитования. Формы и функции кредита. Основные принципы банковского кредита. Виды и условия кредитования Сбербанка России.

    курсовая работа [375,3 K], добавлен 09.03.2009

  • Основы банковского кредитования, его экономическая сущность, субъекты и объекты. Этапы процесса кредитования предприятий коммерческими банками. Анализ кредитного портфеля КБ "Газбанк". Пути совершенствования банковского кредитования реального сектора.

    курсовая работа [137,0 K], добавлен 25.06.2010

  • Виды банковских кредитов и принципы кредитования. Развитие банковского кредитования в России. Формирование кредитного портфеля в коммерческом банке и пути его совершенствования примере ОАО "Россельхозбанк". Методы оценки кредитоспособности заемщика.

    дипломная работа [127,5 K], добавлен 22.03.2015

  • Основы кредитования в условиях рыночного хозяйствования. Принципы, методы банковского кредитования. Формы обеспечения кредита. Организация процесса кредитования в коммерческом банке. Тенденции развития кредитования населения в России.

    курсовая работа [123,2 K], добавлен 20.09.2006

  • Экономическая сущность и критерии оценки кредитоспособности. Наиболее распространенные системы оценки кредитоспособности клиента. Динамика объемов кредитов юридическим лицам и структурное соотношение финансовых коэффициентов в ОАО "Газпромбанк".

    курсовая работа [104,8 K], добавлен 30.10.2010

  • Содержание и экономическая основа механизма банковского кредитования. Этапы кредитного процесса. Методика оценки финансового состояния заемщика, использование информационных технологий. Анализ параметров кредитования ООО "Детский Мир" в ОАО АКБ "КОР".

    дипломная работа [457,5 K], добавлен 11.07.2015

  • Рентабельность банковского бизнеса. Потребители CRM-системы в банке, преимущества от ее внедрения. Автоматизация процессов бизнес-планирования и бюджетирования в банке. Тенденции развития рынка ИТ-решений для банковского сектора Республики Беларусь.

    презентация [4,6 M], добавлен 19.11.2014

  • Основы организации кредитного процесса в коммерческом банке. Классификация, принципы банковского кредитования. Формы обеспечения кредитов, порядок их выдачи и погашения. Предоставление кредитов предприятиям в ЗАО АКБ "Экспресс-Волга Банк" (ОАО) "Сурский".

    дипломная работа [1,4 M], добавлен 26.01.2012

  • Определение понятия, изучение целей и раскрытие задач кредитного скоринга как инструмента оценки кредитоспособности физических лиц, его перспективы в России. Построение скоринговой модели оценки кредитоспособности клиентов на примере ООО "ХКФ Банк".

    курсовая работа [401,2 K], добавлен 07.08.2013

  • Особенности кредитования малого бизнеса. Оценка финансовой устойчивости ФОАО "Уралтрансбанк". Система оценки кредитного риска. Критерии оценки для заемщиков юридических лиц. Рекомендации по совершенствованию методики оценки платежеспособности заемщика.

    дипломная работа [125,5 K], добавлен 25.05.2014

  • Принципы и методика организации оценки кредитоспособности предприятий-заемщиков в банке. Технология процесса кредитования корпоративных клиентов в Архангельском филиале ОАО "Собинбанк". Методика определения платежеспособности заемщика–юридического лица.

    дипломная работа [352,4 K], добавлен 08.11.2013

  • Депозитная политика банка и ее направления. Недепозитные источники формирования ресурсов. Организация процесса корпоративного кредитования в банке, розничного кредитования в банке, расчетно-платежного оборота в банке. Система риск-менеджмента в банке.

    отчет по практике [789,2 K], добавлен 21.05.2014

  • Сущность и этапы кредитного процесса, их содержание и значение. Особенности оценки кредитоспособности клиента. Виды кредитной документации, их нормативно-правовое регулирование. Совершенствование кредитного процесса в ОАО СКБ Приморья "ПримСоцБанк".

    курсовая работа [99,0 K], добавлен 19.04.2013

  • Понятие кредитного процесса в коммерческом банке, принципы его реализации и основные этапы организации. Опыт оценки кредитоспособности клиента российскими коммерческими банками. Управление проблемными кредитами. Рейтинговая оценка корпоративных заемщиков.

    дипломная работа [998,3 K], добавлен 09.12.2013

  • Сущность и правовые вопросы взаимоотношений банков с клиентами. Потребительское кредитование в России. Алгоритм финансовых взаимоотношений банков и клиентов. Оценка и анализ эффективности деятельности банка в сфере потребительского кредитования.

    дипломная работа [687,5 K], добавлен 12.05.2014

  • Сущность банковского кредитования. Кредитная политика коммерческих банков. Условия кредитования и виды обеспечения возвратности банковских кредитов. Анализ банковского кредитования на примере ОАО "АКИБАНК". Исследование кредитного портфеля банка.

    курсовая работа [201,0 K], добавлен 15.05.2008

  • Экономическая сущность, современное и проблемы правового регулирования банковского кредитования физических лиц. Судебная практика взыскания задолженности по кредитам. Кредитование корпоративных клиентов, вопросы мониторинга клиентов коммерческих банков.

    курсовая работа [54,1 K], добавлен 07.10.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.