Создание ML-модели и web-приложения на ее основе для предсказания вероятности получения кредита клиентом в разных банках, чтобы повысить конверсию бизнеса и помочь клиентам принимать информированные решения.
Mandarin — функциональная платежная платформа для развития онлайн-бизнеса. На платформе можно не только принимать платежи по всему миру, но и полноценно управлять движением денег - от покупателя, клиента до конкретного получателя. Mandarin позволяет бизнесу кратно увеличивать продажи с помощью сервисов оплаты в рассрочку. Покупатели смогут оформить рассрочку до 1 500 000 руб. за считанные минуты онлайн, на выгодных и прозрачных условиях.
Используя обширные данные заемщиков и параметров заказов, нужно разработать модель для использования в системе Mandarin, которая будет анализировать эти параметры и возвращать вероятность получения кредита клиентом в разных банках.
Основная задача проекта - оценка возможности одобрения кредита банками клиенту на основе анкетных данных, предоставленных самим клиентом.
Датасет предоставлен компанией Мандарин в рамках проводимого ранее хакатона. В датасете есть данные для пяти условных банков A, B, C, D, E. Для каждого их них необходима независимая оценка.
Решение позволяет проводить эксперименты для каждого банка отдельно с целью:
- подбор оптимальных гиперпараметров;
- сравнение результатов обработки данных различными алгоритмами.
Для упрощения задачи название алгоритма и значения гиперпараметров вынесены в файл настроек params.yaml. Идентификатор исследуемого банка и название алгоритма указывается в следующем блоке:
В решении предлагается на выбор использование моделей логистической регрессии и дерева решений библиотеки XGBoost XGBClassifier https://xgboost.readthedocs.io/en/stable/
Решение позволяет без проблем добавить любой другой алгоритм. Для этого достаточно реализовать метод с сигнатурой train_function(train_data, model_params) и указать название этого метода в файле params.yaml.
XGBoost (eXtreme gradient boosting) - известный и мощный инструмент машинного обучения, обычно используемый для задач контролируемого обучения, таких как классификация, регрессия и ранжирование. Он построен на архитектуре gradient boosting и приобрел популярность благодаря своей высокой точности и масштабируемости.
Весь процесс предобработки данных, получения датасетов и обучение модели для каждого из банков управляется с помощью DVC-конвейера. Этот инструмент выбран как наиболее удобный при локальной разработке и не требующий разворачивания дополнительных серверов. Последовательность операций:
В качестве метрики выбрана f1_micro.
- pandas>=2.1.3
- scikit-learn>=1.3.0
- pyyaml>=6.0.0
- python-dateutil>=2.8.2
- numpy>=1.26.0
- joblib~=1.3.2
- xgboost~=2.0.2
-
Для установки зависимостей для сервера, выполните команду:
pip install -r requirements.txt
Для запуска процесса обучения модели используйте команду:
dvc repro
Отправка и получение данных выполняется командами:
dvc push
dvc pull
Конвейер описан в файле dvc.yaml. Настройки запуска конвейера выполняется в файле params.yaml.
Внешнее хранилище для артефактов:
https://drive.google.com/drive/folders/1sP4C-yJ78S5x2CjzoDAcjAz9wYmzalkv?usp=sharing
Для проведения экспериментов для каждого отдельного банка создается своя ветка.
Эксперимент для банка А
Результаты эксперимента
Эксперимент для банка В
Эксперимент для банка С
Эксперименты для остальных банков выглядят аналогично.
Результаты для всех банков
Ветки Git для разных банков
Внешнее хранилище артефактов