Coder Social home page Coder Social logo

mlops2_4's Introduction

Домашнее задание 4

Автоматизация администрирования MLOps

Исполнитель: Савоськина С.В.

Обзор

Цели и задачи проекта

Создание ML-модели и web-приложения на ее основе для предсказания вероятности получения кредита клиентом в разных банках, чтобы повысить конверсию бизнеса и помочь клиентам принимать информированные решения.

Mandarin — функциональная платежная платформа для развития онлайн-бизнеса. На платформе можно не только принимать платежи по всему миру, но и полноценно управлять движением денег - от покупателя, клиента до конкретного получателя. Mandarin позволяет бизнесу кратно увеличивать продажи с помощью сервисов оплаты в рассрочку. Покупатели смогут оформить рассрочку до 1 500 000 руб. за считанные минуты онлайн, на выгодных и прозрачных условиях.

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

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

Датасет предоставлен компанией Мандарин в рамках проводимого ранее хакатона. В датасете есть данные для пяти условных банков A, B, C, D, E. Для каждого их них необходима независимая оценка.

Описание решения

Решение позволяет проводить эксперименты для каждого банка отдельно с целью:

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

Для упрощения задачи название алгоритма и значения гиперпараметров вынесены в файл настроек params.yaml. Идентификатор исследуемого банка и название алгоритма указывается в следующем блоке:

params.jpg

В решении предлагается на выбор использование моделей логистической регрессии и дерева решений библиотеки XGBoost XGBClassifier https://xgboost.readthedocs.io/en/stable/

Решение позволяет без проблем добавить любой другой алгоритм. Для этого достаточно реализовать метод с сигнатурой train_function(train_data, model_params) и указать название этого метода в файле params.yaml.

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

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

dag2.jpg

В качестве метрики выбрана 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

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

Пример использования

Эксперимент для банка А

expA_1.jpg expA_2.jpg

Результаты эксперимента

expA_3.jpg

Эксперимент для банка В

expB_1.jpg

Эксперимент для банка С

expC_1.jpg expC_2.jpg

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

Результаты для всех банков

all_experiments.jpg

Ветки Git для разных банков

expA_6.jpg expB_2.jpg expC_3.jpg

Внешнее хранилище артефактов

expA_5.jpg

mlops2_4's People

Contributors

svwk avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.