Модернизация скорингового процесса в банке ХХХБ
Исследование текущих подходов к сегментации клиентов. Критерии оценки работоспособности алгоритмов машинного обучения в вопросах банковского кредитования. Сущность и алгоритм построение скоринговой карты. Включение переменных в скоринговую карту клиента.
Рубрика | Банковское, биржевое дело и страхование |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 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