Разработка автоматизированной системы рекомендаций для банка по кредитам и займам

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 01.12.2019
Размер файла 4,2 M

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

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

ѕ Content - часть макета зависящая от страницы, в данную часть помещается все содержимое страницы.

ѕ Footer - часть содержащая данные о создателе и контактные данные для связи.

В структуру веб-приложения входят три страницы:

Главная страница

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

Рис. 29. Главная страница

Страница клиента

В разделе «Страница клиента» доступен весь перечень данных о клиенте; а также оценка клиента - «Хороший» или «Плохой» прогнозируемая модулем машинного обучения на основе данных клиента. Также внизу представлена дата скоринга по клиенту.

Рис. 30. Страница клиента

Страница нового клиента

Данная страница имеет форму заполнения данных нового клиента и кнопку отправки на проверку кредитным скорингом. После заполнения всех данных формы и нажатия на кнопку, страница перенаправляет на страницу «Страница клиента».

Рис. 31. Страница нового клиента

Рис. 32. Структура веб-приложения front-end

Навигация по веб-приложению представлена на рисунке 33. С главной страницы пользователь может попасть на страницу нового клиента, а из нее на главную страницу, нажав на меню веб-приложения вкладку «Главная страница» или нажав на кнопку «Проверить» попасть на «Страница клиента».

Back-end

Данная часть верстки веб-приложения строится на языке Python с использованием фреймворка Flask с встроенными функциями подключения баз данных SQLite и MySQL, возможностью считывать, передавать и транслировать обработанные данные модулем.

Ниже представлена файловая структура веб-приложения (рисунок 2).

Рис. 33. Структура веб-приложения Back-end

Для создания простоты навигации и прочтения back-end части веб-приложения один большой стартовый файл был разбит на несколько, в зависимости от функционального назначения частей кода. Таким образом система файлов сайта выглядит следующим образом:

forms.py - содержит классы форм. Форма - это совокупность объектов используемых для передачи данных от пользователя к серверу на прочтение и обработку входных данных.

models.py - содержит описание классов (таблиц) базы данных

routes.py - содержит модули представлений. Данный модуль представляет из себя функцию на Python с привязанным к ней URL. Служит для обработки запросов веб-браузера.

app.db - является базой данных хранящей информацию о проверенных клиентах на веб-сайте и зарегистрированных пользователях в системе.

Папка static содержит файлы, отвечающие за пользовательский интерфейс, а именно: картинки, шаблоны страниц, файлы CSS, JS и Bootstrap.

Файлы начинающиеся с model формата sav - это сохраненные модели 3-х методов машинного обучения (подробнее о данных файлах будет описано в пункте 4.2).

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

В файле models.py создан класс Client для записи данных по клиенту, введённых со страницы «Страница нового клиента». В данный класс вводятся данные 3 типов: Integer - числовое значение (используется для полей с числовым значением и флагов), String(120) - строка (используется для записи текста) и DateTime - дата и время. Поля класса Client имеют следущие значения:

Client - имя клиента;

Birth_date - день рождение;

Gender_ccode - пол;

Education_ccode - образование;

Productgroup_ccode - тип;

Other_income - сторонний;

Salary - зарплата;

Costs - траты;

Amountrequestedbyclient - сумма, запрошенная клиентом;

Creditterm - условия кредита;

Iscarowned - наличие автомобиля;

Int_rate - процент;

Start_date - дата запроса кредита;

Credit_date - дата скоринга;

Credit_flag - кредит скоринга;

Рис. 34. Класс клиента в файле models.py

Для записи данных о клиенте из интерфейса используется форма NewClient расположенная в файле form.py. Данная форма имеет аналогичный перечень переменных, что и в классе Client, за исключением параметров credit_date и credit_Flag, поскольку при вводе данных это неизвестные переменные, которые записывает сам модуль. Также форма имеет лейблы, к каждому параметру, которые также можно вызывать в основном коде веб-программы для объяснения пользователю какие данные ожидаются на ввод. А также заведена форма кнопки.

Риc. 35. Форма новый клиент в файле form.py

Рис. 36. Библиотеки импортируемы в файле routes.py

В файле routes.py описана функция inputclient вызываемая по одноименному URL, выполняющая следующий функционал:

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

Если клиент заполняет всю форму и нажимает кнопку проверить, срабатывает условие form.is_submitted() как true и данные записанные в форму отправляются в функцию обработки данных для машинного обучения (данная функция будет подробно описана в разделе Внедрение модели машинного обучения) и возвращается прогноз 1 - «Хороший» или 0 - «Плохой». После чего все данные полученные в форме записываются в соответствующие атрибуты класса Client и помещаются под новым id в базу данных. И данная страница перенаправляет пользователя на страницу «Страница клиента», где отображаются данные по веденному клиенту и его оценка.

Рис. 37. Серверная часть страниц новый клиент и данные по клиенту в файле routes.py

4.2 Подключение к базе данных

Модулю системы скоринга необходимо обучаться на определенном перечне данных для создания прогноза по новым клиентам. В банках данные по клиентам и их выплатам по продукту кредитования хранятся в больших хранилищах данных состоящих из нескольких баз данных. Для имитации одной из баз, в которой могли бы хранится данные, была создана база данных CREDITDATABASE на сервере MySQL с таблицей CREDIT_FCLIENT_INFO хранящей данные о кредитах.

Для подключения базы данных к веб-приложению был установлен MySQL коннектор и прописано подключение к базе с заданными параметрами подключения. (рисунок 38)

Рис. 38. Подключение к базе данных MySQL в файле routes.py

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

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

Рис. 39. Обобщенное табличное выражение

После пишется запрос, где вызываются все переменные, с преобразованием текстовых значений некоторых полей в числовой. Таким образом атрибут пол при букве М-мужской возвращает 0, при Ж-женский 1. Параметр образование в зависимости от уровня образования записывается число от -3 до 3 в зависимости от уровня.

Рис. 40. Запрос на выгрузку данных (1 часть)

Продукт выводится как 5 флагов их комбинация шифрует кажый тип продукта. Например, CC будет представлен как переменные 1,0,0,0,0.

Рис. 41. Запрос на выгрузку данных (2 часть)

Рис. 42. Запрос на выгрузку данных (3 часть)

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

Далее функция машинного обучения считывает этот запрос и записывает в переменную формата Dataframe.

4.3 Внедрение модели машинного обучения

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

Рис. 43. Пример записи названий файлов для записи модулей.

Алгоритм обучения модуля записан в функции modellearning вызываемой при вызове переобучения и первом запуске веб-приложения автоматически. Функция считывает данные запросом (описанным ранее в разделе 4.2 Подключение к базе данных) и записывает в переменную после чего 3 метода машинного обучения учатся на данных (подробнее процесс обучения каждого из модулей описан в пункте 2.4 Обучение моделей). Далее 3 модуля записываются с помощью подключенной библиотеки sklearn.externals в папку веб-приложения как файл формата sav. После выполнения функция возвращает 1.

Рис. 44. Функция обучения модуля.

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

Рис. 45. Функция обработки данных часть 1

Рис. 46. Функция обработки данных часть 2

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

Рис. 47. Функция прогноза

4.4 Тестирование

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

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

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

В ходе данной главы были описаны основные моменты создания веб-приложения с встроенным модулем кредитного скоринга на базе трех различных методов машинного обучения, а именно: Логистическая регрессия, Случайный лес, Метод опорных векторов (Линейный).

Было разработано на фраемворке Flask с адаптивным интерфейсом и удобной навигацией веб-приложение, имеющее 3 основные страницы: «Главная страница», «Страница клиента» и «Страница нового клиента». Данный сайт был продемонстрирован сотрудникам банка и получил положительные отзывы.

Заключение

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

В рамках данной работы можно выявить основные выводы и результаты ВКР:

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

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

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

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

Работа может быть продолжена в следующих направлениях:

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

ѕ Анализ большего количества данных. Также возможно расширить базу характеристик клиента, которые могут влиять на возврат кредита, что может улучшить (но также и перенасытить модуль и ухудшить) показатели модели.

ѕ Создание модулей скоринга другого типа. Данная работа распространялась только на скоринг типа application-scoring, дальнейшее же исследование может затронуть скоринги и других типов, что также актуально для многих банковских компаний.

Список используемых источников

1. Зайченко И.А. «Скоринг как метод оценки кредитного риска» // Вестник северо-кавказского гуманитарного института. 2012. №3 С. 45-54.

2. Скиба С.А. и В.И. Лойко «Современный подход к оценке платежеспособности клиента при кредитовании» // Научный журнал КубГАУ, 2012, №1, С. 11

3. Volkova E.S., Gisinf V.B. «Data mining techniques: modern approaches to application in credit scoring» Digest Finance, 2017, volume 22, issue 4, pages 400-412

4. Hand D.J., Henley W.E. Statistical Classification Methods in Consumer Credit Scoring: a Review // journal Royal statistical society. 2007. №2, С. 327

5. Мельников А.А., Стельмаш Д.С. «Разработка автоматизированной системы кредитного скоринга» // Журнал Финансы и кредиты, 2010, С. 234

6. Рыкова И.Н. «Скоринг-оценка физических лиц на рынке потребительских кредитов» // Журнал Финансы и кредит. 2007, С. 10

7. Официальный сайт Сбербанка - (интернет ресурс) режим доступа: https://www.sberbank.ru/

8. Официальный сайт ВТБ - (интернет ресурс) режим доступа: https://www.vtb.ru

9. Агафонова В.В., Вишневер В.Я., Фрумусаки С.В. «Технологическая эволюция кредитного скоринга в системе банковского потребительского кредитования» // Вестник Волжского университета имени В.Н. Татищева №3, том 2, 2018, C. 26

10. Durand D., «Risk Elements in Consumer Instatement Financing,» //National Bureau of Economic Research, 1941. С. 24-55.

11. Thomas L.C., «A Survey of Credit and Behavioral Scoring: Forecasting Financial Risk of Lending to Consumers,» International Journal of Forecasting, Vol. 16, No. 2, 2000, pp. 149-172.

12. Xiao-Lin Li, Yu Zhong «An Overview of Personal Credit Scoring: Techniques and Future Work» // International Journal of Intelligence Science, 2012, 2, 181-189

13. Волкова Е.С., Гисин В.Б., Соловьев В.И. «Современные подходы к применению методов интеллектуального анализа данных в задаче кредитного скоринга» // Финансы и кредит. - 2017. - Т. 23, №34. - С. 2044-2060.

14. Официальный сайт SAS - (интернет ресурс) режим доступа: https://www.sas.com (2018)

15. Официальный сайт EGAR - (интернет ресурс) режим доступа: http://www.egartech.ru

16. Официальный сайт Scorto Solutions - (интернет ресурс) режим доступа: http://scortosolutions.com

17. Антонов В.Ф., Мамедов Р.А. «BIG DATA: проблемы, технологии обработки и хранения» // Журнал Современная наука и инновации, 2015, №2, С. 50-56

18. Сузи Р.А. «Язык программирования Python» // М.: Бином. Лаборатория знаний, 2006 С. 250

19. Официальный сайт mathworks - (интернет ресурс) режим доступа: https://www.mathworks.com/help/matlab/call-python-libraries.html

20. Официальный сайт jupyter - (интернет ресурс) режим доступа: https://jupyter.org

21. Pedregosa F., Varoquaux G., Gramfort A, Michel V., Thirion B. «Scikit-learn: Machine Learning in Python « //Journal of Machine Learning Researc, 2011, C. 2825-2830

22. Маккинли У. «Python и анализ данных»/ Пер. с англ. Слинкин А.А. - М.: ДМК Пресс, 2015. С. 482

23. MySQL AB «MySQL Administrator's Guide « // MySQL Press, 2005, C.465

24. Гришин К.А. «Обзор популярных фреймворков для разработки мобильных приложений» // конференция XLVI Огарёвские чтения, 2018, С. 240-244.

Размещено на Allbest.ru

...

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

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

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

  • Автоматизированные информационные системы и их структура. Обзор существующих автоматизированных информационных систем "Расписание". Структурный подход к проектированию автоматизированной системы "Расписание", построение моделей данных и анализ внедрения.

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

  • Методы и этапы создания автоматизированной обучающей системы по дисциплине "Программирование" для студентов ВУЗов. Описание и сравнение программ-аналогов. Выбор инструментальных средств и языка разработки. Проектирование интерфейса обучающей программы.

    курсовая работа [4,4 M], добавлен 26.11.2010

  • Искусственные нейронные сети как одна из широко известных и используемых моделей машинного обучения. Знакомство с особенностями разработки системы распознавания изображений на основе аппарата искусственных нейронных сетей. Анализ типов машинного обучения.

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

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

    дипломная работа [177,1 K], добавлен 24.06.2012

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

    дипломная работа [2,7 M], добавлен 27.10.2017

  • Обоснование выбора метода проектирования и инструментальных средств для разработки программного средства и базы данных. Требования к эргономике и технической эстетике. Разработка алгоритмов приложения. Руководство пользователя. Безопасность труда.

    дипломная работа [2,9 M], добавлен 17.10.2014

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

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

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

    дипломная работа [153,2 K], добавлен 10.06.2013

  • Выбор методологии и инструментальных средств проектирования на платформе 1С: Предприятие 8. Разработка комплекса функциональных моделей предметной области "Планирование и отчетность по УВР ВолГУ". Анализ видов информационных структур модульной системы.

    дипломная работа [2,3 M], добавлен 14.06.2013

  • Анализ и сравнение существующих систем тьюторской поддержки. Методологии разработки программного обеспечения. Разработка web-ориентированной системы тьюторской поддержки самостоятельной работы студента. Выбор архитектуры программных средств разработки.

    курсовая работа [1,1 M], добавлен 05.01.2013

  • Обоснование выбора среды программирования и технических средств. Определение требований к компонентам системы. Описания объекта автоматизации. Написание инструкции по эксплуатации для пользователя. Разработка программных компонентов. Выбор методики СУБД.

    курсовая работа [1,3 M], добавлен 27.10.2012

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

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

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

    курсовая работа [1,2 M], добавлен 17.01.2011

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

    дипломная работа [2,8 M], добавлен 24.03.2014

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

    отчет по практике [1,5 M], добавлен 12.10.2022

  • Обзор существующих моделей параллельного программирования, основные средства отладки эффективности MPI-программ, общие проблемы всех средств трассировки. Создание экспериментальной системы отладки эффективности MPI-программ, этапы работы анализатора.

    дипломная работа [767,2 K], добавлен 14.10.2010

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

    курсовая работа [3,3 M], добавлен 12.01.2015

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

    презентация [1,7 M], добавлен 22.07.2014

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

    курсовая работа [1,7 M], добавлен 31.03.2012

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