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)
| File | Size | Uploaded | |
|---|---|---|---|
| met_ml_project-0.1.2.tar.gz | 4.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|