MADE MLOps homework 1
Project description
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 для автоматического прогона тестов и линтеров.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file met_ml_project-0.1.2.tar.gz.
File metadata
- Download URL: met_ml_project-0.1.2.tar.gz
- Upload date:
- Size: 4.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.7.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9bc37fd56bd0531180cdb6e2dcc20de380f132572f17df7503892fb4e39a4851
|
|
| MD5 |
d27eaaaa26b768abf7294c71aa6d0361
|
|
| BLAKE2b-256 |
430ee6e3aa4eea9e062f7a93bf4d41ca5214d5c147ea0ef6607c7085b34995de
|
File details
Details for the file met_ml_project-0.1.2-py2.py3-none-any.whl.
File metadata
- Download URL: met_ml_project-0.1.2-py2.py3-none-any.whl
- Upload date:
- Size: 9.1 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.7.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48f4e2cb1a3d85423869612bd3918688efe527b428d0a11fc67249d1d82cb358
|
|
| MD5 |
97b8e80797d08ba7b0cbec561cfc7476
|
|
| BLAKE2b-256 |
ae0d118fd9ef61945e0c706244dd7c6dad1df976e2ed94e8edc075b541d57ec4
|