Научная статья на тему 'ПРОГНОЗИРОВАНИЕ ВНЕДРЕНИЯ НОВЫХ БАНКОВСКИХ ПРОДУКТОВ С ПОМОЩЬЮ СИСТЕМ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА'

ПРОГНОЗИРОВАНИЕ ВНЕДРЕНИЯ НОВЫХ БАНКОВСКИХ ПРОДУКТОВ С ПОМОЩЬЮ СИСТЕМ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
147
37
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МАШИННОЕ ОБУЧЕНИЕ / НЕЙРОСЕТИ / ФИНТЕХ (FINTECH) / БОЛЬШИЕ ДАННЫЕ (BIG DATA) / БАНКОВСКОЕ КРЕДИТОВАНИЕ / БАНКОВСКИЕ ПРОДУКТЫ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Алешина Анна Валентиновна, Булгаков Андрей Леонидович, Богорад Максим Дмитриевич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Алешина Анна Валентиновна, Булгаков Андрей Леонидович, Богорад Максим Дмитриевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

FORECASTING THE INTRODUCTION OF NEW BANKING PRODUCTS USING ARTIFICIAL INTELLIGENCE SYSTEMS

In the conditions of rapid development of fintech, high competition between banks and financial companies, it becomes very important for commercial banks to respond quickly to the demand for new banking products, including credit. The importance of using machine learning methods for effective analysis of the population's need for credit products and prompt response to identified requests is dramatically increasing. Currently, the speed of commercial banks' response to changing customer needs in banking products is coming to the fore, which should be reduced to just a few days. The paper analyzed various population groups and showed the possibility of using machine learning methods to quickly identify the most relevant population groups among which new banking products will be in demand. The analysis was carried out using machine learning methods based on logistic regression. It has been demonstrated that with the help of machine learning methods, it is possible to predict future demand for the appearance of banking products.

Текст научной работы на тему «ПРОГНОЗИРОВАНИЕ ВНЕДРЕНИЯ НОВЫХ БАНКОВСКИХ ПРОДУКТОВ С ПОМОЩЬЮ СИСТЕМ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА»

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

Алешина Анна Валентиновна,

канд. экономич. наук, доцент, Московский государственный университет имени М.В. Ломоносова E-mail: annaaaleshina@mail.ru

Булгаков Андрей Леонидович,

канд. экономич. наук, старший научный сотрудник, Московский государственный университет имени М.В. Ломоносова, доцент базовой кафедры цифровой экономики Института развития информационного общества РЭУ им. Г.В. Плеханова E-mail: z3900207@mail.ru

Богорад Максим Дмитриевич,

студент, РЭУ им. Г.В. Плеханова, ВШКМиС Прикладная математика и информатика E-mail: maximbogorad@gmail.com

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

Ключевые слова: машинное обучение, нейросети, финтех (fintech), большие данные (Big Data), банковское кредитование, банковские продукты.

а. в

см со

Введение

Логистическая регрессия является одним из распространенных методов классификации данных, которые применяются как в финансовой сфере, в демографических исследованиях, а также во многих сферах исследований в области естественных наук [1, стр. 181], [2, стр. 283],,[3, стр. 152], [4, стр 321], [5, стр 52], [6, стр 109], [7, стр 290].

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

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

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

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

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

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

eß0 + ßlx1 + ---+ßnxn p (Х2, . . Xn )= 1 + eßo + M1+ +ßnXn

где:

р(х) - вероятность принадлежности объекта к классу, x - значения независимых переменных, ß0, ß1, ß2, ... ßn - коэффициенты модели, которые находятся исходя из принципа максимального правдоподобия.

Логистическая регрессия позволяет нам моделировать вероятности, предсказывать результаты

и делать выводы на основе значимости независимых переменных. Это один из основных методов классификации в машинном обучении.

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

В модели используются следующие переменные:

• Зависимая переменная - невозврат кредита (1 - невозврат, 0 - возврат).

• Независимые переменные - возраст клиента, доход, семейное положение, образование, кредитный рейтинг и т.д.

Подготовка данных для логистической регрессии

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

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

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

Для определения значения бинарной переменной (которая решает задачу классификации) применяют пороговое отсечение, «т.е. в случае, когда значение р меньше порога, считают, что прогнозируемое значение выходной переменной равно нулю, в противном случае - единице. В случае отсутствия априорных предположений о данных, обычно пороговое значение полагают равным 0,5» [9, стр 5].

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

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

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

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

Моделирование логистической регрессии

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

Оценка результатов модели логистической регрессии

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

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

Гипотеза исследования

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

Анализ наборов данных

Для проведения исследования были взяты данные из открытых источников (open source): GitHub [8] и kaggle.com [10].

Используемые библиотеки

• Общие математические и числовые операции: numpy [11]

• Структуры и анализ данных: pandas [12]

• Проверка исходных данных на релевантность: Warnings [13]

• Библиотека для машинного обучения: scikit-learn [14]

сз о со от m Р от

от А

• Логистическая регрессия: Logistic Regression

[15]

Описание набора данных

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

Введенные данные объединены в следующую таблицу (см. таблицу 2). Данные, которые приводятся в таблице представляют собой только часть параметров, которые использовались для проверки гипотезы. Таблица 2 приводится здесь для демонстрации формы выборки, составленной с помощью библиотеки Pandas языка Python.

В таблице 2 представлены числовые и строковые значения параметров датасета, которые будут использоваться в исследовании.

Таблица 1. Основные базовые параметры, тестируемые в модели

Index: индекс SK_ID_CURR: id клиента TARGET: цель

NAME_CONTRACT_TYPE: тип кредита(наличными/возобновля-емый)

CODE_GENDER: пол(м/ж) FLAG_OWN_CAR: владеет ли машиной(да/нет) FLAG_OWN_REALTY: владеет ли недвижимостью(да/нет) CNT_CHILDREN: количество детей AMT_INCOME_TOTAL: суммарный доход AMT_CREDIT: сумма по кредиту AMT_ANNUITY: суммарный доход в год AMT_GOODS_PRICE: стоимость имущества NAME_TYPE_SUITE: тип семьи(семья есть, без семьи, муж, жена, ребенок)

NAME_INCOME_TYPE: источник дохода NAME_EDUCATION_TYPE: образование NAME_FAMILY_STATUS: семейное положение NAME_HOUSING_TYPE: тип жилья REGION_POPULATION_RELATIVE: где проживает DAYS_EMPLOYED: сколько дней человек проработал

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

Таблица 2. Пример обработки части данных, используемых в тестируемой модели

SK_ID_ CURR TARGET NAME CONTRACT TYPE CODE GENDER FLAG OWN CAR FLAG OWN REALTY CNT CHILDREN AMT INCOME TOTAL

0 100002 1.0 Cash loans M N Y 0 202500.0

1 ЮОООЗ 0.0 Cash loans F N N 0 270000.0

2 100004 0.0 Revolving loans M Y Y 0 67500.0

3 100006 0.0 Cash loans F N Y 0 135000.0

4 100007 0.0 Cash loans M N Y 0 121500.0

6792 107922 NaN Cash loans F N Y 0 1 12500.0

6793 107923 NaN Cash loans F N Y 0 1SOOOO.O

6794 107924 NaN Cash loans M N Y 0 54000.0

6795 107925 NaN Cash loans M N N 0 1SOOOO.O

а. в

см со

Источник: составлено авторами с использованием методов библиотеки Pandas языка Python

Вывели данные в таблице на экран (в таблице 2 в иллюстративных целях отображаются первые 5 строчек и последние 4, из-за большого объема датасета).

С помощью метода describe() выводим основную статистику по нашему датасету. Анализ датафрей-ма и переменных проводится в виде таблицы, имеющую следующую структуру (см. таблицу 3).

Также при проведении анализа проводилась проверка данных на Null (на релевантность данных и их отсутствие) (см. таблицу 4). Для этого используем метод isnull() библиотеки Pandas.

Смотрим, сколько значений из датасета соответствуют Null (таблица 5). Для этого осуществляем анализ колонки DAYS_EMPLOYED (используем метод describe()):

Анализ данных колонки DAYS_EMPLOYED показывает следующее: минимальное значение -15632.000000 (см. таблицу 5 выше), математическое ожидание составляет 63698.839635,

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

Иногда ставятся нетипичные значения для заполнения пропусков.

Проверка на NaN

Проверка на NaN подразумевает разбитие на 2 датасета (приведены примеры двух датасетов в таблице 6 и 7).

Проверка происходит с помощью переменной not_nan. Если значение столбца Target = 0 или 1, то значение переменной = true, иначе false. Фильтруем Na N.

SKID CUR R TAR GET CMCH ILDREN AMT INCO ME TOTAL AMT CREDI T AMTA N>UIT Y AMT GOO D S PRICE REGION POPULA TION RELATIVE

со НИ t 6797.00 0000 5797. 00000 0 6797.000 000 6.797000e+0 3 6.79700 0e-03 6797.000 000 6.793000e+ 03 6797.000000

Ж еа а 103971. 114904 0.077 454 0.410769 1.672061e+0 5 5.97575 2e-05 27034.17 4709 5.375022e+ 05 0.021008

st d 2293.97 1719 0.267 333 0.712820 9.56528i5e+0 4 4.01746 8e-05 14412.32 8396 3.687270e+ 05 0.014016

lili il 100002. 000000 0.000 000 0.000000 2.565000e+0 4 4.50000 0e-04 2596.500 000 4.500000e+ 04 0.000938

25 9i> 101988. 000000 0.000 000 0.000000 1.125000e+0 5 2.70000 0e-05 16434.00 0000 2.385000e+ 05 0.010006

50 О/о 103968. 000000 0.000 000 0.000000 1.440 000 e+0 5 5.08495 5e-05 24939.00 0000 4.500000e+ 05 0.018850

75 О/о 105954. 000000 0.000 000 1.000000 2.025000e+0 5 8.08650 0e-05 34587.00 0000 6.795000e+ 05 0.028663

m ах 107926. 000000 1.000 000 7.000000 1.93 5 000 e+0 6 2.51730 0e-06 135936.0 00000 2.254500e+ 06 0.072508

Источник: составлено авторами с использованием метода describe() библиотеки Pandas языка Python

Таблица 4. Пример значений наборов данных при проверке данных на Null

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

SK ID CURR 0

TARGET 100 Э

NAME CONTRACT TYPE 0

CODE GENDER 0

FLAG OWN CAR 0

AMT REQ CREDIT BUREAU DAY 896

AMT REQ CREDIT BUREAU 896

AMT REQ CREDIT BUREAU MON 896

AMT REQ CREDIT BUREAU QRT 896

AMT REQ CREDIT BUREAU YEAR 896

Источник: составлено авторами с использованием библиотеки Pandas языка Python

Таблица 5. Анализ колонки DAYS_EMPLOYED

count 6797.000000

mean 63698.839635

std 141203.230776

min 141203.230776

25% -15632.000000

50% -2807.000000

75% -1218.000000

max 365243.000000

Источник: составлено авторами с использованием библиотеки Pandas языка Python

Таблица 6. Проверка на NaN - 1 датасет

SK ID CURR TARGET NAME CON-TRACT_TYPE CODE GENDER FLAG OWN_CAR FLAG OWN REALTY CNT CHILDREN AMT I N -COME_TOTAL

0 1GGGG2 1.G Cash loans M N Y G 2G25GG.G

1 1GGGG3 G.G Cash loans F N N G 27GGGG.G

2 1GGGG4 G.G Revolving loans M Y Y G 675GG.G

3 1GGGG6 G.G Cash loans F N Y G 135GGG.G

4 1GGGG7 G.G Cash loans M N Y G 1215GG.G

Источник: обучающий датасет составлен авторами с помощью разбиения исходного датасета и использования библиотеки Pandas языка Python.

Был создан результирующий датасет, в котором в столбце Target представлены все NaN (см. таблицу 7).

Можно создать отдельный обучающий датасет, в котором столбец Target заполнен (таблица 6).

При построении гистограммы распределения возникающие ошибки исправляем с DAYS_EM-PLOYED. Используем библиотеки MatPlotLib и Seaborn, а также функцию displot() библиотеки Seaborn. Используем метод apply и lamda функции языка Python для устранения ошибки.

Далее производим удаление строк или столбцов с пропусками (см. гистограммы на рис. 1 и 2).

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

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

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

Таблица Z. Проверка на NaN - 2 датасет

SK_ID_ CURR TAR GET NAME CONT RACT TYPE CODE G ENDER FLAG OWN CAR FLAG OWN REALTY CNTCH ILDREN AMTENCO ME TOTAL

57 97 106777 NaN Cash loans. F N N 0 90000.0

57 98 106778 NaN Cash loans F N Y 0 112500.0

57 99 106779 NaN Cash loans. F Y Y 0 351000.0

58 00 106780 NaN Cash loans. M N Y 1 157500.0

58 01 106781 NaN Revolving loans F N N 0 697500.0

Источник: результирующий датасет составлен авторами с помощью разбиения исходного датасета и использования библиотеки Pandas языка Python.

Таблица 8. Пример таблицы с очищенными данными

Рис. 1. График, на котором видно, что большое количество значений имеют пропуски.

Источник: составлено авторами с использованием библиотек MatPlotLib и Seaborn и функции displot().

Ое

см со

Рис. 2. График построенный на основе правила, если x>0, то заполняем все такие значения нулем и выводим график.

Источник: составлено авторами с использованием библиотек MatPlotLib и Seaborn и функции displot().

SK ID CURR 6797

TARGET 5797

NAME CONTRACT TYPE 6797

CODE GENDER 6797

FLAG OWN CAR 6797

... ...

AMT REQ CREDIT BUREAU DAY 5901

AMT REQ CREDIT BUREAU WEEK 5901

AMT REQ CREDIT BUREAU MON 5901

AMT REQ CREDIT BUREAU QRT 5901

Length: 122, dtype: int64

Источник: составлено авторами с помощью методов notna() и sum() библиотеки Pandas языка Python.

Таблица 9 Количество столбцов с очищенными данными

Источник: составлено авторами с использованием метода unique() библиотеки NumPy языка Python

В таблице 9 присутствуют результаты по двум массивам, из которых:

1 массив - уникальное количество заполненных данных относительно столбцов.

2 массив - сколько таких столбцов у нас есть.

Для простоты понимания построим гистограмму

распределения (рис. 3).

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

2094 2166 2294 2798 2966 3216 3371 3414 3459 3547 4703 5797 6769 6793 Рис. 3. Гистограмма распределения, которая показывает сколько разных данных мы имеем. Источник: составлено авторами с использованием библиотеки MatPlotLib языка Python

Оцифровка номинальных данных (с помощью дамми переменных)

Большинство библиотек машинного обучения не умеют работать с текстовыми данными. Нужно сделать так, чтобы мы могли с ними работать.

Таблица 10. Список столбцов номинальных данных

Выводим столбцы: (используем метод head() библиотеки Pandas).

Превращаем номинальные данные (например, наличие или отсутствия автомобиля, наличие или отсутствие детей) в бинарные цифровые значение (да или нет). Ниже в таблице 10 и 11 представлены полученные столбцы

SK го TAR NAME CONT CODE G FLAG О FLAG OWN CNT CH AMT INCO

(IRR GET RACT TYPE ENDER WN CAR REALTY ILDREN ME TOTAL

0 100002 1.0 Cash loans M N Y 0 202500.0

X 100003 0.0 Cash loans F N N 0 270000.0

2 100004 0.0 Revolving loans M Y Y 0 67500.0

2 100004 0,0 Revolving loans M Y Y 0 67500.0

2 100004 0.0 Revolving loans M Y Y 0 67500.0

Источник: составлено авторами с использованием библиотеки Pandas языка Python

Вывод категорий: оцифруем столбец NAME_ ременную, чтобы не потерять наши данные. Появи-CONTRACT_TYPE с помощью метода get_dummies лись категориальные переменные. библиотеки Pandas. Необходимо удалить одну пе-

Таблица 11. Вывод категорий номинальных данных

SK ID CURR TARGET CNT CHILDREN AMT_ INCOME TOTAL AMT CREDIT AMT ANNUITY AMT GOODS_PRIC

0 100002 1.0 0 202500.0 406597.5 24700.5 351000,0

1 100003 0.0 0 270000.0 1293502.5 35698.5 1129500.0

2 100004 0.0 0 67500.0 135000.0 6750.0 135000.0

3 100006 0.0 0 135000.0 312682.5 29686.5 297000.0

4 100007 0.0 0 121500.0 513000.0 21865.5 513000.0

Источник: составлено авторами с использованием библиотеки Pandas языка Python

Анализируем полученные данные, используя для этого метод describe().

Но, мы не знаем, что у нас за данные, поэтому мы можем выявить не все категории, так как иногда категории записываются числом, а число воспринимается как тип данных integer/float.

Поэтому необходимо выявить категориальные переменные.

Создаем 2 списка (таблица 13).

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

2 список является длиной конкретного столбца.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Ниже в гистограмме 4 демонстрируется визуализация зависимости 2 массивов, полученных на прошлом шаге и представленных в Табл. 13.

сз о

со £

m Р сг

СТ1 А

Таблица 12. Анализ полученных результатов на прошлом шаге

SK Ш С LRR TARGE Т CNTCEHL DREN AMT INCOME TOTAL AMT CR EDIT AMT ANN ITTY AMT GOODS PRICE

con at 6797.0000 00 5797.00 0000 6797.000000 6.797000e+03 6.797000e +03 6797.00000 0 6.793000e+03

ще ЯП 103971.11 4904 0.07745 4 0.410769 1.67206le+05 5.975752e +05 27034.1747 09 5.375022e+05

std 2293.9717 19 0.26733 3 0.712820 9.565286e+04 4.017468e +05 14412.3283 96 3.6872 70e+05

Dil n 100002.00 0000 0.00000 0 0.000000 2.565000e+04 4.500000e +04 2596.50000 0 4.500000e+04

25 о/0 101988.00 0000 0.00000 0 0.000000 1.125000e+05 2.700000e +05 16434.0000 00 2.385000e+05

50 о/о 103968.00 0000 0.00000 0 0.000000 1.440000e+05 5.084955e +05 24939.0000 00 4.500000e+05

75 о/0 105954.00 0000 0.00000 0 1.000000 2.025000e+05 8.086500e +05 34587.0000 00 6.795000e+05

та X 107926.00 0000 1.00000 0 7.000000 1.935000e+06 2.517300e +06 135936.000 000 2.254500e+06

Источник: составлено авторами с использованием библиотеки Pandas языка Python Таблица 13. Таблица с визуализацией скрытых номинальных данных

1б7 ?1. 22, 79, 250, 343, 611, 1506,2401, 3309, 3434, 3740, 5153, 5542, 6435, 6797]),

Источник: составлено авторами с использованием списков и методов библиотеки NumPy языка Python

Рис. 4. Гистограмма, которая показывает зависимости 2 полученных нами ранее массивов. По ней мы видим

сколько значений содержат переменные

Источник: составлено авторами с использованием библиотеки MatPlotLib языка Python

Работа с пропусками в данных

Данные, которые мы обрабатываем, могут быть Е не полными. Такая ситуация называется «пропуски

к

© в данных». Работа с пропусками данных позволяем ет выявить перечень данных, которые пропуще-

о

см

03

ны и исключить из исследования. (см. таблицы 14 и 15).

Делаем числовые переменные категориальными, а также удаляем значений, где у нас количество уникальных значений = 1. Они нам не нужны (таблица 15).

Таблица 14. Предположительно категориальные переменные, значения которых больше 2 и меньше или равно 22.

CNT_CHILDREN [0 1 23475] CNT_FAM_MEMBERS [1 2 3 4 5 6 9 7] REGIONRATENGCLIENT [2 1 3] REGION_RAUNG_CLIENT_W_CITY [2 1 3]

HOURAPPRPROCESSSTART [10 11 9 17 16 14 8 15 7 13 6 12 19 3 18 21 4 5 20 22 1 2] OBS_30_CNT_SOCIAL_CIRCLE¿2. 1. 0. 4. 8.10. 7. 3, 6. 5.12. 9. 13.11.14.22. 16. 15. 17.20,] DEF_3 0_CNT_SO СIAL_CIRCLE [2. 0. 1. 3. 4. 5.]

OBS_60_CNT_SOCIAL_CIRCLE £2. 1. 0. 4. 8.10. 7. 3, 6. 5.12. 9.13.11.14.21.15.22. 16.20.]

DEF_6 0_CNT_SO СI AL_CIRCL E [2. 0. 1. 3. 5. 4.]

AMT_REQ_CREDIT_BUREAU_HOUR [0. 1. 2.]

AMTREQ_CREDITBUREAUDAY [0. 1. 3. 2. 4.]

AMT_REQ_CREDIT_BUREAU_WEEK [0. 1. 3. 2. 4.]

AMT_REQ_CREDIT_BUREAU_MON L0. 1. 2. 6. 5. 3. 7. 9. 4. 11. 8, 16. 12, 14. 10.] AMT REQ_CREDITBURE AUQRT [0, 1.2. 4. 3. 8, 5. 6.]

AMT REQ CREDIT BUREAU YEAR [.!.. 0. 2. 4. 5. 3. 8. 6. 9. 7. 10. 11. 13.1_

Источник: составлено авторами с использованием модуля Simplelmputer библиотеки Sklearn языка Python

Таблица 15. Таблица, составленная после удаления пропусков, что уменьшило количество колонок и увеличило количество информации

SK I D С IRR ТА RG ET AMT IN COME T ОТ AL AMT CRE DIT АЙГТ ANNU ITY AMT G OODS P MCE REGION POP LEATTON RE LATI\T DAY S El RTH DAYS EiMPL OYED DAYS R EGISTR ATION

0 1000Q 2 1.0 202500.0 40659 7.5 24700. 5 351000.D 0.01S801 -9461 -637 -3648

I 10Ü0Q 3 0.0 270000.0 12935 02.5 3569S. 5 1129500. 0 0.003541 16765 -1188 -1186

2 10Ü0Q 4 0.0 67500.0 13500 0.0 6750.0 135000.0 0.010032 19046 -225 -4260

3 1000Q 6 0.0 135000.0 3126S 2.5 29686. 5 297000.D 0.00S019 19005 -3039 -9333

4 10Ü0Q 7 0.0 121500.0 51300 0.0 21S65. 5 513000.0 0.02S663 19932 -3038 -4311

6 7 S» 2 10792 2 Ka К 112500.0 72846 0.0 40S06. 0 675000.Q 0.01 S634 22753 0 -12195

6 7 3 10792 3 Ka К ISOOOO.O 79247 7.0 23301. 0 661500.0 0.072508 23195 0 -12461

6 7 9 3 10792 3 Ka К 1SOOOO.O 79247 7.0 23301. 0 661500.0 0.072508 23195 0 -12461

Источник: составлено авторами с использованием метода get_dummies библиотеки Pandas языка Python

Заполнение пропусков

Самый простой способ - удалить их. Ниже в таблице 16 демонстрируется итоговый набор па-

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

Таблица 16. Итоговая таблица после удаления пропусков на прошлых шагах датасета

о SK ID CTFRRD TAR GETi3 AMT ENCOM E TOTAI D AMT С REDITD AMT_AN NT ITT YD AMT GOOD S PRICED REGION POPULATIO N RELATTVEd

On 100002a 1.0a 202500.0D 406597.5a 24700.5a 351000.0a 0,018801a

lu 100003a 0.0a 270000.Oes 1293502. 5CS 35698.5a 1129500.0a 0,003541a

2r 100004a О.Оз 67500.013 135000.0a 6750.0a 135000.0D 0,010032a

3c 100006a O.On 135000.0a 312682.5a 29686.5a 297000.013 0,008019a

4c 100007a 0.0a 121500.0o 513000.0a 21865.5a 513000.0a 0,028663a

Источник: составлено авторами с помощью библиотеки Pandas языка Python

сз о

со £

m Р сг

СТ1 А

Поиск выбросов

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

зультаты исследования. Ниже в таблице (таблица 17) представлены массивы данных для выявления выбросов (крайних значений) и нетипичных объектов и дальнейшая их кластеризация.

Таблица 17. Массив данных для выявления выбросов (крайних значений) и нетипичных объектов и дальнейшая их кластеризация

arrayf [[0.35237493, 0.7075297 , 0,04298191, ..., 0. ,0. 0,

[0,15528072, 0.74391112, ОШО¡5307*■■■ ,0. ,0. 0. ],

[0,33158493, 0.66316986, 0.03315849, .. „0. -lO. 0. ],

■ "1 [0.2690729 , 0.6726S225, 0.05392669, ... ,0. ,0. 0. ],

[0.38981041, 0.70820756, 0.05623015, .. „0. 0. ],

[0,11164719, 0.73354806, ОШЩЙ!^■ ■■ L uuuuuuuuuuuuuuuuuuuuub ,0. ,0. 0. 11)

Источник: составлено авторами с использованием библиотек scipy и sklearn языка Python

о. &

со сч о

Классификация по корреляции

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

Таблица 18. Перечень столбцов с высокой корреляцией, которые были удалены из исследования

{^*MT_CREDIT'S CNTCHILDREN1\ 'CNT_FAM_MEMBERSJ\ CNT_FAM_MEMB ERS J \ CNTFAMMEMBERSff, CNT_FAM_MEMBERS_7,] 'CNT_FAM_MEMB ER£_9 \ 'DEF_60_CNT_S OCIAL_CIRCLE_5.0I:. LIVE_C1TY_NOT_WOEK_CITY,J

'î^^^^^ia^OrLf^^^XlO^w^^Î^^u^^^^l^^l^ i SËCOUdâl^ Zi'P ËC13.1 a

'OB £_30_CNT_£ OCEAL_CIR.CLE_l 0. Qp, 'OE £_30_CNT_S QCEAL_CIRCLE_ 12. Qr, 'OB £_30_CNT_S QCEAL_CIRCLE_1 5. Qr, 'OB £_30_CNT_S QCEAL_CIRCLE_j 0\ 'OB £_30_C]S~T_S OCIAL _CIRCLE_4.0,J 'OB £_30_CNT_S OCIALdRCLEô.O1, 'OB £_30_CNT_S OCEAL_CIRCLE_7.0': 'OB Ê_30_C]Srr_SOCIAL dRCLE ^.O1, 'OB £_60_CNT_S QCEAL_CIRCLE_1 0\ 'OBÊ_60_CNT_SOCLA.L_CIRCLE_11,0r, 'OB £_60_CNT_S QCEAL_CIRCLE_1 3. Qr, 'OB £_60_CNT_S OCEAL_CIRCLE_14.0', 'OB £_60_C]Srr_S QCEAL_CIRCLE_2.0': 'OB £_60_CNT_S QCEAL_CIRCLE_20. Qr, 'OB £_60_CNT_S QCEAL_CIR.CLE_5 0\ 'OB £_60_CNT_S QCEAL_CIRCLE_B .Û': 'ORGANIZATION^YFE_XNA', 'REGION_RATING_CLIEKT_3 ; TREGION_RATTNG_CXIENT_W_CITY_2l, 'REG REGION NOT WORK REGION}_

Источник: составлено авторами с использованием метода set() языка Python

По результатам анализа тепловой карты были выявлены и исключены данные с высокой корреляцией. В результате текущий размер датасета становится меньше: (6797, 260)

Далее был проведен анализ столбцов с высокой корреляцией, которые также были удалены из исследования (см. таблицу 18).

По результатам последующей корректировки текущий размер датасета сократился еще больше и составил: (6797, 228).

Рис. 5. Тепловая карта HeatMap для вывления столбцов с высокой корреляцией

Источник: составлено авторами с использованием библиотеки MatPlotLib языка Python

Классификация по модели

В процессе обучения логистической регрессии стандартизируем наши данные, оставляем только значимые переменные и, в итоге, получили новый размер датасета: (6797, 85).

Предиктивный анализ данных для работы машинного обучения завершен. Далее проводим разбиение окончательного датасета с помощью библиотеки scikit-learn - https://scikit-learn.org/ на обучающую и тестирующую выборку.

Разбиение на обучающую и тестовую выборку.

Разбиваем X и Y на обучение и тест:

• Размер обучающей выборки 4637,

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

• Размер тестовой выборки 1160. Количество объектов 1 класса в обучающей выборке 365.0, в тестовой выборке 84.0

Далее проводим ребалансировку классов.

Ребалансировка классов

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

Таблица 19. Таблица значимых данных

19). Какие-то параметры более значимые, поэтому мы их ставим первыми, какие-то параметры имеет существенно меньшую значимость и мы их ставим в конец списка.

0 1 2 3 4 5 6 7 8 9 10 11 12

0 0.168607 0.189409 0.896430 0.S04013 0.339756 0.0 0.216565 0.697349 0.859866 1.0 0.0 0.0 0

1 0.256994 0.386965 0.974092 0.S42095 0.350514 0.0 0.759776 0.373159 0.770222 1.0 0.0 0.0 1

2 0.101752 0.087576 0.40282S 0.513894 0.885999 0.0 0.339810 0.620500 1.000000 1.0 0.0 0.0 2

3 0.126152 0.101833 0.97773S 0.S93999 0.604849 0.0 0.S24470 0.575689 0.443328 1.0 0.0 0.0 3

4 0.131619 0.193483 1.000000 0.596301 0.258831 0.0 0.760288 0.472303 1.000000 1.0 0.0 0.0 4

Источник: составлено авторами с использованием библиотеки Pandas языка Python

До ребалансировки:

• Количество объектов 0 класса в обучающей выборке 4272

• Количество объектов 1 класса 365 После ребалансировки:

• Количество объектов 0 класса в обучающей выборке 730

• Количество объектов 1 класса 730

Ниже приводится пример массива данных, которые балансируются (см. таблицу 20).

Таблица 20. Пример массива данных, которые балансируются. Вывод X_train

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

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

• Балансировка обучающей выборки [730 730],

и для тестовой выборки до следующих показателей:

• Балансировка тестовой выборки [1076 84] Были протестированы результаты проведенной

ребалансировки для обучающей и тестовой выборок. Результаты сравнения приводятся ниже:

• Ttest_indResult(statistic=0.017875985791468835, pvalue=0.9857589986530099)

• Размерность: 1000

Результаты проведённой ребалансировки демонстрирует повышение качества используемых данных.

Подбор и валидация моделей

Подбор и валидацию моделей машинного обучения будем оценивать с помощью таких методов как

построение ROC-кривой. Логистическая регрессия при обучении и предсказании моделей выглядит следующим образом (рис. 6).

у = column_or_ld(y, warn precision =True) recall fl-score Support

recovered 0.97 uncovered 0.17 0.74 0, 0.68 0 , . 84 .27 1076 84

accuracy macro avg 0.5 7 weighted avg 0.91 0 . 0.71 0, 0.74 0, .74 . 55 .80 1160 1160 1160

Площадь под Roc-кривой - о .7092

Бремя работы кода - 0.0099 сек

Площадь под ROC-кривой по вероятностям о . 7540272614622057

Результат на оценочной выборке о. 7203125869069469

Рис. 6. Пример обучения модели машинного обучения

Источник: составлено авторами с использованием модели логистической регрессии

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

ROC curve

1.0

си 4—» га си 0.8

ai > 0.6

'о—*

"«я о Q_ 0.4 /

CL) =3 0.2 f

0.0 0.0

0.2 0.4 0.6 0.8 False Positive Rate 1.0

Рис. 7. График ROC-кривой метода логистической регрессии.

Источник: составлено авторами с помощью модели ROC кривой с использованием полученных данных

В нашей модели площадь под ROC-кривой по вероятностям 0.7540272614622057 (см. рис. 8). А результат на оценочной выборке 0.7203125869069469. Считается, если площадь ROC-кривой больше 0.5, то модель имеет предсказательную силу. Так как в нашей модели площадь ROC-кривой 0.7, следовательно, модель имеет предсказательную силу.

о о 00 Ö"

"О Ö"

СТ1 А

Площадь поп ROC—кривой — 0.7092 Время работы кода — о.ооээ сек

Площадь ПОД RQC-Кривой по вероятностям 0.754 02 72614 62 2057 Результат на оценочной выборке 0.72 0312 5869069469

Рис. 8. Визуальный результат проведенного исследования. Источник: составлено авторами с использованием библиотеки Pandas языка Python

Ое

см со

Выводы

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

Литература

1. Azen R., Walker C.M. Categorical Data Analysis for the Behavioral and Social Sciences. Rou-tledge, 2011. 283 p.

2. Lachin J.M. Biostatistical Methods: the Assessment of Relative Risks. 2nd edition. Wiley, 2011. 644 p.

3. Shoukri M.M., Pause C.A. Statistical Methods for Health Sciences. 2nd edition. CRC Press, 1999. 390 p.

4. Магнус Я.Р., Катышев П.К., Пересецкий А.А. Эконометрика. Начальный курс. 6-е изд., пере-раб. и доп. М.: Дело, 2004. 576 с

5. Тырсин А.Н., Костин К.К. Оценивание логистической регрессии как экстремальная задача // Вестник томского государственного университета, 2017, Управление, вычислительная техника и информатика No 40, УДК 519.237:519.233, DOI: 10.17223/19988605/40/6, // URL: https://cy-berleninka.ru/article/n/otsenivanie-logisticheskoy-regressii-kak-ekstremalnaya-zadacha/viewer

6. Зубарев А., Бекирова О. Анализ факторов банковских дефолтов 2013-2019 годов // Экономическая политика. 2020. Т. 15. No 3. С. 106-133 DOI: 10.18288/1994-5124-2020-3-106-133 // URL: https://cyberleninka.ru/article/n/analiz-faktorov-bankovskih-defoltov-2013-2019-godov/viewer

7. Сорокин А.С. Моделирование оптимальных кредитных лимитов в микрофинансовых организациях. Экономический журнал ВШЭ. 2022; 26(2): 285-306.

8. GitHub // Портал - веб-сервис для хостинга IT-проектов и их совместной разработки // Электронный ресурс // Url: https://github.com/ (дата обращения 01.05.2023)

9. Перерва О.Л., Степанов С.Е., Незимова С.С. Сравнение эконометрических моделей и методов бизнесаналитики предсказания банкрот-

ства предприятий // Интернет-журнал «НАУКОВЕДЕНИЕ» Том 9, № 6 (2017) https://naukove-denie.ru/PDF/82EVN617.pdf (доступ свободный)

10. Kaggle // Портал по исследованию данных // Электронный ресурс // URL: https://www.kaggle. com/ (дата обращения 01.05.2023)

11. Библиотека общих математических и числовых операции NUMPY // Электронный ресурс // URL: https://numpy.org/matplotlib.pyplot (дата обращения 01.05.2023)

12. Библиотека структуры и анализа данных PANDAS // Электронный ресурс // URL: https://pandas. pydata.orgseaborn (дата обращения 01.05.2023)

13. Библиотека проверки исходных данных на релевантность WARNINGS // Электронный ресурс // URL: https://docs.python.org/3Zlibrary/ warnings.html (дата обращения 01.05.2023)

14. Библиотека для машинного обучения SCIKIT-LEARN // Электронный ресурс // URL: https:// scikit-learn.org (дата обращения 01.05.2023)

15. Библиотека логистической регрессии LOGISTIC REGRESSION - // Электронный ресурс // URL: https://scikit-learn.org/stable/modules/gen-erated/sklearn.linear_model.LogisticRegression. html (дата обращения 01.05.2023)

FORECASTING THE INTRODUCTION OF NEW BANKING PRODUCTS USING ARTIFICIAL INTELLIGENCE SYSTEMS

Aleshina A.V., Bulgakov A.L., Bogorad M.D.

Moscow State University named after M.V. Lomonosov; Plekhanov Russian University of Economics

In the conditions of rapid development of fintech, high competition between banks and financial companies, it becomes very important for commercial banks to respond quickly to the demand for new banking products, including credit. The importance of using machine learning methods for effective analysis of the population's need for credit products and prompt response to identified requests is dramatically increasing. Currently, the speed of commercial banks' response to changing customer needs in banking products is coming to the fore, which should be reduced to just a few days. The paper analyzed various population groups and showed the possibility of using machine learning methods to quickly identify the most relevant population groups among which new banking products will be in demand. The analysis was carried out using machine learning methods based on logistic regression. It has been demonstrated that with the help of machine learning methods, it is possible to predict future demand for the appearance of banking products.

Keywords Machine learning, neural networks, fintech, Big Data, bank lending, banking products.

References

1. Azen R., Walker C.M. Categorical Data Analysis for the Behavioral and Social Sciences. Routledge, 2011. 283 p.

2. Lachin J.M. Biostatistical Methods: the Assessment of Relative Risks. 2nd edition. Wiley, 2011. 644 p.

3. Shoukri M.M., Pause C.A. Statistical Methods for Health Sciences. 2nd edition. CRC Press, 1999. 390 p.

4. Magnus Ya.R., Katyshev P.K., Peresetsky A.A. Econometrics. The initial course. 6th ed., reprint. and add. M.: Case, 2004. 576 with

5. Tyrsin A.N., Kostin K.K. ESTIMATION OF LOGISTIC REGRESSION AS AN EXTREME PROBLEM // BULLETIN OF TOMSK STATE UNIVERSITY, 2017, Management, Computer engineering and Informatics No. 40, UDC 519.237:519.233, DOI: 10.17223/19988605/40/6, // URL: https://cyberleninka.ru/arti-cle/n/otsenivanie-logisticheskoy-regressii-kak-ekstremalnaya-zadacha/viewer

6. Zubarev A., Bekirova O. Analysis of factors of bank defaults in 2013-2019 // Economic policy. 2020. Vol. 15. No. 3. pp. 106-133 DOI: 10.18288/1994-5124-2020-3-106-133 // URL: https://cyberleninka.ru/article/n/analiz-faktorov-bankovskih-defoltov-2013-2019-godov/viewer

7. Sorokin A.S. Modeling of optimal credit limits in microfinance organizations. HSE Economic Journal. 2022; 26(2): 285-306.

8. GitHub // Portal - web service for hosting IT projects and their joint development // Electronic resource // Url: https://github. com / (accessed 01.05.2023)

9. Pererva O.L., Stepanov S.E., Nezimova S.S. Comparison of econometric models and business analytics methods for predicting bankruptcy of enterprises // Online journal "Science Studies" Volume 9, No. 6 (2017) https://naukovedenie.ru/PD-F/82EVN617.pdf (free access)

10. Kaggle // Data Research Portal // Electronic resource // URL: https://www.kaggle.com / (accessed 01.05.2023)

11. Library of general mathematical and numerical operations NUMPY // Electronic resource // URL: https://numpy.org/mat-plotlib.pyplot (accessed 01.05.2023)

12. PANDAS Data Structure and Analysis Library // Electronic resource // URL: https://pandas.pydata.orgseaborn (accessed 01.05.2023)

13. Library for checking the source data for relevance WARNINGS // Electronic resource // URL: https://docs.python.org/3/ library/warnings.html (accessed 01.05.2023)

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

14. SCIKIT-LEARN Machine Learning Library // Electronic resource // URL: https://scikit-learn.org (accessed 01.05.2023)

15. LOGISTIC REGRESSION Library - // Electronic resource // URL: https://scikit-learn.org/stable/modules/generated/sklearn. linear_model.LogisticRegression.html (accessed 01.05.2023)

i Надоели баннеры? Вы всегда можете отключить рекламу.