Нейронная сеть и предсказание дефолта по розничным кредитам (Bondora)
В данной заметке я опишу задачу по созданию приложения для анализа портфеля розничных кредитов, выданных на платформе Bondora.com, и расскажу о других планируемых функциях этого приложения
Как и обещано в первом посте, я постараюсь рассказывать о практическом опыте инвестиций, в том числе с применением современных финтехнологий, а также о собственном первом опыте создания системы искусственного интеллекта на основе нейронных сетей (Machine Learning) для риск-менеджмента при таких инвестициях. Вдруг кому-то будет интересно.
Впервые описания задачи и пример ее решения на Python было приведено Эдуардо Пена Вина на его странице в LinkedIn.
Если вернуться к описанию моего способа высокодоходных инвестиций в евро, то там указано, что платформа для p2p-кредитования Bondora ежедневно выкладывает полную статистику с данными по всем кредитам, предоставленным на платформе, содержащую в настоящее время информацию о 38116 кредитах, выданных за период с февраля 2009 года по июнь 2017 года (8 с половиной лет). Данные можно взять отсюда.
Общее описание задачи:
- Создать нейронную сеть, которая на основании данных о кредите верно предсказывает наступление дефолта по кредиту с вероятностью 80 %.
- Используя данную сеть, увеличить доходность портфеля p2p-кредитов c 15 до 20 % годовых.
- Используя данные о кредитах, создать приложение, которое позволяет человеку обучаться анализу розничных кредитов и предсказанию дефолтности по следующему алгоритму:
А) Программа отображает данные о кредите, релевантные для предсказания дефолта
Б) Человек выбирает, наступит ли по данному кредиту дефолт или нет
В) Программа дает правильный ответ, и подсчитывает число правильных ответов, данных человеком
Г) Программа дает ответ нейронной сети по предсказанию дефолта и анализирует его правильность
Д) Алгоритм повторяется
Мои предположения (гипотезы), которые могут подтвердиться в процессе создания приложения и решения задачи:
- Данные Bondora позволяют с 80% уверенностью предсказывать дефолты по кредитам. Большой объем и репрезентативность данных позволят построить нейронную сеть, достаточно эффективную, чтобы не только анализировать кредиты Bondora, но и работать с любыми другими розничными портфелями и сервисами, требующими анализа розничных рисков.
- При помощи обучения с обратной связью аналитик может приобрести навык предсказания дефолтов по кредитам на основании данных о них.
При этом результат предсказания дефолтности человеком будет достаточно сильным, но слабее, чем у нейронной сети.
В настоящее время я приступил к программированию приложения на Swift 3.0
с использованием библиотеки для создания систем искусственного интеллекта AIToolbox
это мощная библиотека инструментов, позволяющая строить, обучать, использовать для предсказания и анализировать результативность нейронных сетей различных типов.
- Загружены исходные данные (матрица 38117 х 112 ячеек)
- Данные из файла *.csv перенесены в базу данных программы, отобраны показатели, релевантные для анализа кредитов (46 показателей)
- Построены обучающая и тестовая выборки на основании данных о 200 первых кредитах в базе (пропорция ~50/50)
- Нейронная сеть для классификации содержит 46 нейронов на входе, 60 нейронов в первом слое, 15 нейронов во втором и на выходе дает предсказание класса: 0 для дефолта и 1 для недефолтного кредита.
- На данных о 200 кредитах точность анализа обучающей выборки сетью составляет 98% (при 100 000 итерациях обучения блоками (batch) по 15 кредитов, это примерно 2 минуты работы программы).
Точность прогнозирования дефолтов в тестовой выборке в настоящее время составляет около 75%. - Написана процедура выгрузки данные обученной сети для последующего использования.
На следующем этапе работы над программой (ориентировочно – начало августа) я постараюсь реализовать следующее:
- Обучение на основе 50 % данных Bondora (38 тысяч кредитов, напомню) и проверка работы сети на оставшихся данных.
- Алгоритм K-Fold кросс-валидации различных типов сетей и нахождения наиболее оптимальной сети с нужным числом слоев, нейронов и функциями при наибольшей точности решения задачи.
- Доведение точности прогнозирования дефолтов сетью на уровень более 80%. Надо понимать, что теоретически, если всю базу данных Bondora предоставить как обучающую выборку, мы можем добиться точности прогнозирования в 95 % и выше. Поэтому и вводится ограничение на объем обучающей выборки в 50%.
Постараюсь через месяц обновить информацию о ходе решения задачи.
Следите за новостями в блоге!