Package: met-ml-project
MADE MLOpshomework 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 для автоматического прогона тестов и линтеров.