Skip to main content

MADE MLOps

homework 1

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

Денис Шибитов


Установка:

python -m venv .venv
source .venv/bin/activate
pip install .

Запуск обучения:

python ml_project/train_pipeline.py configs/train_config.yaml 

Так же дополнительно доступно ещё две различные конфигурации для обучения:

train_config_rf.yaml
train_config_log.yaml

Предсказание:

python ml_project/predict_pipeline.py configs/predict_config.yaml

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

results/models
results/predicts
results/metrics

Запуск тестов:

python -m unittest discover tests

Структура проекта:

├── source_data                             <- данные для обучения
├── configs                                 <- конфигурации для обучения и предсказания
│             ├── predict_config.yaml
│             ├── train_config_log.yaml
│             ├── train_config_rf.yaml
│             └── train_config.yaml
├── EDA                                     <- EDA: ноутбук + сгенерированный отдельно отчет
│             ├── EDA_1.ipynb
│             ├── eda_report.html
│             └── eda_script.py
├── ml_project
│             ├── data                      <- подмодуль для работы с данными
│             ├── entities                  <- дата классы для работы с конфигами
│             ├── features                  <- подмодуль для работы с предикторами
│             ├── models                    <- подмодуль для функций обучения/предсказаний
│             ├── predict_pipeline.py       <- получение предсказаний
│             └── train_pipeline.py         <- обучение модели на данных
│             ├── __init__.py
├── requirements.txt                        <- зависимости проекта
├── README.md                               <- описание проекта
├── results                                 <- каталог по умолчанию для полученных артефактов
├── setup.py
└── tests                                   <- тестирование кода

Архитектурные решения

За основву был взят пример проекта который был предоставлен на занятиях, так что философия того что в итоге получилось очень близка к нему (как мне кажется). В проекте поддерживается модульная структура. Основная часть домашнего задания (код для обучения моделей и получения предсказаний с помощью них) расположена в папке ml_project, который является python пакетом. Отдельно было проведено исследование предложенного датасета в ноутбуке (папка EDA). Так же в этой папке находится скрипт "авто-EDA" и получившийся с помощью него репорт (на самом деле интересный опыт, я не знал раньше, спасибо). Поддерживается конфигурирования с помощью yaml файлов (папка configs). В папке находится три различных конфигурации для обучения и одна для предсказания. С помощью unittest тесты (папка tests) для проверки паплайна обучения/предсказания целиком так и для отдельных частей проекта. Так же написаны тесты для кастомного трансформера и для автоматически сгенерированных данных. Для реализации ml модели выбрана библиотека sklearn, для конфигурирования marshmallow + датаклассы. Настроен github actions для автоматического прогона тестов и линтеров.

Metadata

Release files for met-ml-project 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for met-ml-project 0.1.2
File Size Uploaded
met_ml_project-0.1.2.tar.gz 4.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for met-ml-project 0.1.2
File Interpreter ABI Platform
met_ml_project-0.1.2-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 13.4 kB

Release files / met_ml_project-0.1.2.tar.gz

Download URL met_ml_project-0.1.2.tar.gz
Size 4.3 kB
Tags Source
SHA-256 checksum
How to use checksums
9bc37fd56bd0531180cdb6e2dcc20de380f132572f17df7503892fb4e39a4851
BLAKE2b-256 checksum
How to use checksums
430ee6e3aa4eea9e062f7a93bf4d41ca5214d5c147ea0ef6607c7085b34995de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.7.9

Release files / met_ml_project-0.1.2-py2.py3-none-any.whl

Download URL met_ml_project-0.1.2-py2.py3-none-any.whl
Size 9.1 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
48f4e2cb1a3d85423869612bd3918688efe527b428d0a11fc67249d1d82cb358
BLAKE2b-256 checksum
How to use checksums
ae0d118fd9ef61945e0c706244dd7c6dad1df976e2ed94e8edc075b541d57ec4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.7.9

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page