Скоринг c применением нейронных сетей (ML, ИИ)

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

Введение

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

То, что я сейчас написал, ВАЖНО для понимания выводов, которые я сделаю позже.

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

Модель: логистическая регрессия

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

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

«Логистическая регрессия или логит-модель — статистическая модель, используемая для прогнозирования вероятности возникновения некоторого события путём его сравнения с логистической кривой. Эта регреcсия выдаёт ответ в виде вероятности бинарного события.»

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

Смотрел я это видео, и думал: «Вот что бывает, когда не бизнесменам дают решать бизнесовые задачи». Я «восхитился» (надеюсь вы понимаете к чему это я) представленным примером решения, и решил покопать в данной тематике, как решается данная дача другими учёными и экономистами.

Примеры

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

1. И.С. Дуля, к.т.н., доцент А.Л. Богданов, ИЭМ ТГУ «Применение нейронных сетей в кредитном скоринге». Ссылка: https://core.ac.uk/download/pdf/287410134.pdf

«Постановка задачи. Объектом данного исследования является решение задачи кредитного скоринга с помощью аппарата нейронных сетей, 236 целью – построение модели, способной выявить заёмщиков, которые с высокой долей вероятности выполнят условия договора.»

«Признаки, в которых доля пропусков составляла более 70%, и атрибутивные признаки, количество уникальных значений которых превышает 300, также были удалены из набора данных, т.к. работа с ними приводит к существенному увеличению объема данных и усложнению процесса обучения нейронной сети.»

«Для решения задачи классификации заемщиков на классы по платежеспособности (A, B, C, D, E, F, G) был использован многослойный полносвязный персептрон с двумя скрытыми слоями, обучаемый методом обратного распространения ошибки.»

У этих же авторов есть и другие подобные статьи на данную тему. Например, ссылка: https://cyberleninka.ru/article/n/primenenie-neyronnyh-setey-v-reshenii-zadachi-kreditnogo-skoringa/viewer

2. Гусарова О.М. , Комаров П.И. , Денисов Д.Э. ФГОБУ ВО «Финансовый университет при Правительстве Российской Федерации». «НЕЙРОННЫЕ СЕТИ В КРЕДИТНОМ СКОРИНГЕ». Ссылка: https://vaael.ru/ru/article/view?id=93

«значения 9 входных переменных должны определять значение одной выходной переменной «Благонадежный заемщик»»

«Определение зависимой переменной предусматривает деление всех клиентов на две категории: «хорошие» и «плохие».»

3. Гусарова О.М., Комаров П.И., Денисов Д.Э. «Нейронные сети в кредитном скоринге» Ссылка: https://readera.org/nejronnye-seti-v-kreditnom-skoringe-142216357

«Как видно из таблицы, значения 9 входных переменных должны определять значение одной выходной переменной «Благонадёжный заёмщик»»

«Определение зависимой переменной предусматривает деление на 2 категории: «хорошие» и «плохие».»

4. Максим ВЛАСЕНКО. «Оценка кредитоспособности физических лиц при помощи инструментария классификационных нейронных сетей». Ссылка: https://www.nbrb.by/bv/articles/10841.pdf

В статье 4, автор также проводит некое исследование подходов к решению задачи скоринга. Например, начиная со страницы 7 приведены разные подходы различных авторов к решению данной задачи. Например:

«Бинарная система: 1 – дефолт, 0 – нет дефолта. Архитектура нейронной сети подбиралась эмпирически: варьировалось количество скрытых слоев (от 1 до 5) и нейронов в каждом слое до минимизации ошибки. Оценка весов методом обратного распространения ошибки»

Выводы по примерам

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

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

Проблематика указанных решений задачи скоринга

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

2. Указанные решения не позволяют спланировать и оценить нагрузку, показатели и KPI отделов, связанных с решением вопросов риска.

3. Указанные решения не позволяют проактивно оценить кредитные активы банка и финансовые показатели.

4. Указанные решения не позволяют проактивно реагировать на потенциальные будущие угрозы в связи с изменением факторов.

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

Задача скоринга

Теперь давайте взглянем на тоже самое но с точки зрения бизнеса.

С точки зрения бизнеса, заёмщик выглядит следующим образом (рис. 1).

Скоринг c применением нейронных сетей (ML, ИИ)

Рис. 1. Заёмщик с точки зрения процесса возврата кредита (платёжной дисциплины)

Заёмщик это не человек, который или хороший или плохой, или платит, или не платит. Это человек который платит, только вопрос в том КОГДА.

Скоринг c применением нейронных сетей (ML, ИИ)

Рис. 2. Оценка заёмщика

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

Причем, сами риски с точки зрения бизнеса можно оценить финансово с разных точек зрения:

1. Риск не уплаты процентов по кредиту.

2. Риск не тела кредита.

Риски операционной деятельности банка.

Скоринг c применением нейронных сетей (ML, ИИ)

Рис. 3. Оценка рисков

Давайте взглянем на пример, приведенный на рис. 3. У нас есть клиент, который ПЛАТИТ. Но платит С ЗАДЕРЖКОЙ. То есть, с точки зрения логики и бизнеса, ему можно выдать кредит. Да, он такой серединка на половинку, платит с пинка, но платит. Но это значит, что в данном случае банк несет издержки на то, чтобы побудить клиента исполнять свои договорные обязательства. Если потенциально оценивать заёмщика с точки зрения оплаты, то данные риски можно охарактеризовать как риски или убыток связанные с дополнительной операционной деятельностью банка, направленные на компенсацию этого самого риска.

Как минимум позвонить клиенту, и хотя бы спросить жив он и здоров. Мало ли бывает. Но как вы понимаете это деньги и издержки.

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

В самом простом случае, например, вы знаете, что 1 человек в месяц тратит 10 человеко-часов для взаимодействия с должником. Один человеко-час компании стоит 30$. То есть, в месяц компания должна компенсировать 300$ выпадающих доходов, которые очевидно что лягут процентом на его дурную голову.

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

Таким образом, зная что, компания вынуждена тратить по 300 долларов в месяц на клиента с целью компенсации риска, в год данная величина составит 3600$. Соответственно, вся эта сумма % ляжет на клиента.

Если человек взял 5 миллионов рублей (это порядка 67800 долл. по курсу 73,7), то в год за компенсацию риска ему придется заплатить 5,3%, которые должны будут учтены в стоимости кредита.

Мониторинг кредитных рисков

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

Если вы посмотрите на таблицы, то оценивается заёмщик как таковой, что само по себе уже не является верным. Пример факторов:

Описания полей

· client_id - идентификатор клиента

· education - уровень образования

· sex - пол заемщика

· age - возраст заемщика

· car - флаг наличия автомобиля

· car_type - флаг автомобиля иномарки

· decline_app_cnt - количество отказанных прошлых заявок

· good_work - флаг наличия “хорошей” работы

· bki_request_cnt - количество запросов в БКИ

· home_address - категоризатор домашнего адреса

· work_address - категоризатор рабочего адреса

· income - доход заемщика

· foreign_passport - наличие загранпаспорта

· sna - связь заемщика с клиентами банка

· first_time - давность наличия информации о заемщике

· score_bki - скоринговый балл по данным из БКИ

· region_rating - рейтинг региона

· app_date - дата подачи заявки

· default - флаг дефолта по кредиту

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

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

Самый простой пример. Заёмщик не платит, что портит его кредитную историю.

В самом первом примере, который я привел во введении есть анализ важности признаков с помощью «shap».

Давайте посмотрим на то, что привела Datascientistв своём примере:

Скоринг c применением нейронных сетей (ML, ИИ)

Рис. 4. Анализ важности (значимости) признаков (факторов) в скоринг модели

Посмотрите на рис. 4. То что выше имеет наибольшую значимость, то что ниже – меньшую.

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

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

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

С другой стороны, давайте рассмотрим мошеннические схемы с кредитами. Понимания как работают скоринговые модели, мошенники СПЕЦИАЛЬНО делают упор на значимые факторы, и самый главный из них – кредитная история.

И понимаете в чём суть?? У человека может быть идеальная кредитная история, но деньги вы потеряете. Причем, как правило, кредитные истории разгоняют специально, чтобы украсть у банка не 100 – 200 тысяч, а миллионы. Так чтобы хватило всей группе мошенников.

И в рамках представленной в самом первом примере скоринговой модели вы никогда не поймаете мошенников. Вы можете сколько угодно оценивать их по наличию судимостей и пр. Это не даст ничего. Потому что мошенники не глупые люди, и подкладывают чистых людей с хорошей историей.

В рамках оценки скоринга важно оценивать не только самого человека, но и контекст.

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

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

Планирование деятельности банка и превентивное реагирование на угрозы

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

Давайте рассмотрим пример.

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

Система решения задачи скоринга

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

Скоринг c применением нейронных сетей (ML, ИИ)

Рис. 5. Схематическое представление скоринга

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

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

Скоринг c применением нейронных сетей (ML, ИИ)

Рис. 6. Результат работы

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

Здесь же хочу отметить, что это не задача логистической регрессии или классификации.

Также, если вы мониторите кредитные риски в режиме реально времени, важно оценивать факторы и угрозы превентивно с применением систем предиктивной аналитики (рис. 7).

Скоринг c применением нейронных сетей (ML, ИИ)

Рис. 7. Оценка финансового состояния компании работодателя клиента

Данные для решения задачи

Также я бы хотел сделать небольшую остановку на данных для решения задачи и указать не некоторые ошибки.

Скоринг c применением нейронных сетей (ML, ИИ)

Рис. 8. Анализ важных признаков

Давайте вернемся к картинке анализа важности признаков, который я уже приводил выше и сейчас приведена на рис. 8. Как вы видите из рис. 8, второй по значимости признак – образование.

Скоринг c применением нейронных сетей (ML, ИИ)

Рис. 9. Таблица исходных данных для расчёта скоринга

Однако, как вы видите из рис. 9, поле образование (education) представляет собой категориальный признак, который в дальнейшем трансформируется в число, соответствующее уровню образования.

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

Скоринг c применением нейронных сетей (ML, ИИ)

Рис. 10. Распределение плохих заёмщиков в зависимости от возраста и образования

Скоринг c применением нейронных сетей (ML, ИИ)

Рис. 11. Расположение медиан для различных уровней образования и возрастов распределений по рис. 10

Привожу расшифровку цитатой по автору в направлении ранжирования образование, где SCH – самое низкое образование, а ACD – самое высокое:

· SCH - school, школьное образование??

· GRD - graduate, выпускник

· UGR - undergraduates, старшекурсники

· PGR - аспирант

· ACD - академик?

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

Но это важная тема. Как мы видим из рисунка 8, образование находится на 2-ом месте по важности фактора в модели скоринга.

И в данном видео, да и вообще все кто подобным образом делают оценку образования, допускают фундаментальную ошибку.

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

Для начала я бы выделил следующие уровни образования:

1. Школьное образование 9 классов.

2. Школьное образование 11 классов.

3. Средне специальное образование.

4. Неполное высшее образование.

5. Высшее образование.

6. Два и более высших образования.

7. Аспирантура.

8. Докторантура.

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

- кандидат наук;

- доктор наук;

- доцент;

- профессор.

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

Вы должны представлять каждую ступень образования как отдельный фактор и в сущности записать образование не как какое-то число, например 4, соответствующее неполному высшему образованию, а числовым кодом:

(0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1)

Указанная последовательность соответствует тому, что человек окончил докторантуру, защитил докторскую диссертацию и является профессором.

Скоринговая модель это не просто чистая математика. Это логика + математика. Скоринговая модель должна быть адаптируема к исходным данным как на чёткой и нечёткой логике, так и математике. И конечная модель нейронной сети должна являться весьма сложной сборной солянкой.

Следующее на чём бы я хотел остановиться – пропуски в данных.

Скоринг c применением нейронных сетей (ML, ИИ)

Рис. 12. Оценка пропусков

В исходном примере, который я привел во введении автор оценивает пропуски в данных. Это важно при формировании датасета и обучении адекватной модели. Например, на рис. 12 они составляют порядка 0,41%.

Суть пропусков следующая.

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

Например, у вас нет данных по образованию клиента. Что делать??

Здесь есть разные подходы:

1. Вы можете удалить данные с пропусками.

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

2. Вы можете заполнить средним арифметическим, медианой или модой (мода – это наиболее часто встречающееся значение).

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

3. Вы можете заполнить нулями.

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

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

Например, если вы используете для оценки ансамбль нейронных сетей, где каждый элемент по отдельности оценивает что-то своё (рис. 13), то если, например к вам пришел человек, который работает в зарубежной компании, и статистических данных по финансовому состоянию этой самой компании у вас нет. Это риск. Вы же понимаете, что человек может работать как в хорошей компании, так и в шарашкиной конторе (вне зависимости от юрисдикции, включая оффшорные зоны). Соответственно, если на выходе нейронной сети или алгоритма вы получаете логические данные о финансовой устойчивости компании в виде +1 (устойчива), -1 (не устойчива), то зная что в условиях отсутствия данных ваша модель даст результат NULL, то вы можете поставить этому фактору значение риска -1 изначально.

То есть, пропуски нужно оценивать здраво.

Скоринг c применением нейронных сетей (ML, ИИ)

Рис. 13. Ансамбль нейронных сетей для оценки скоринга

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

Заключение

На этом я бы хотел завершить данную статью. Как вы видите, оценка скоринга это весьма сложный и многогранный процесс, который сводится результату 0 (плохой заёмщик), 1 (хороший заёмщик) лишь в САМОМ ПРИМИТИВНОЙ СЛУЧАЕ.

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

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

DATASCIENCE ЭТО НЕ МАТЕМАТИКА И ПРОГРАММИРОВАНИЕ НЕЙРОННЫХ СЕТЕЙ НА ПИТОНЕ.

Многие ошибочно берут и рассматривают чистых математиков, программистов, экономистов и пр. Работа с моделями это НАУКА. И работать с моделями, процессами и пр. должны люди, которые ПОНИМАЮТ СУТЬ ЭТИХ ПРОЦЕССОВ.

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

Данная статья – это наглядный пример того, как математики и узкие специалисты не понимающие бизнес, причины и следственные связи различных процессов, операционной деятельности, ценообразования и прочего начинают решать задачи. Они ДАЖЕ не могут верно поставить цель и сформулировать задачу. Но это и логично, они же ничего не понимают в бизнесе. Как они могут сформулировать цель и задачу?? В итоге, всё сводится к примитивной математике, факторному анализу и применению каких-то в высшей степени примитивных моделей в совершенно разных смыслах этого слова.

Если у кого то будет желание пообщаться, можно писать мне здесь или по контактам, указанным ниже.

Контакты:

Мой стартап: finprophet.com

Всех благ, побед и

успехов в бизнесе

19
12 комментариев