lab12_ml_testing

0
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
README.md

Лабораторная работа 12: Комплексное тестирование ML pipeline

Структура

  • ml_pipeline.py
    — генерация данных, обучение, сохранение/загрузка модели, предсказание.
  • ml_api.py
    — Flask API для инференса (
    /health
    ,
    /predict
    ,
    /batch_predict
    ,
    /model_info
    ).
  • ml_testing_framework.py
    — сквозное тестирование данных, модели, API и дрифта.
  • ml_monitoring.py
    — имитация прод-наблюдения, сбор метрик, отчёт и дашборд.
  • run_ml_system.py
    — сквозной запуск: обучение, API, тесты, мониторинг.
  • tests/test_ml_pipeline.py
    — pytest-проверки компонентов pipeline.
  • requirements.txt
    — зависимости.

Быстрый старт

Как запустить

  • Обучить и сохранить модель:
    python ml_pipeline.py
  • Запустить API:
    python ml_api.py
    (проверка:
    http://localhost:5000/health
    )
  • Запустить фреймворк тестирования:
    python ml_testing_framework.py
  • Запустить мониторинг и дашборд:
    python ml_monitoring.py
  • Запустить всё сразу:
    python run_ml_system.py
  • Юнит-тесты:
    python -m pytest tests/ -v

Что генерируется

  • model/
    с артефактами модели.
  • ml_testing_report.json
    — отчёт тестов.
  • ml_monitoring_report.json
    — отчёт мониторинга.
  • ml_monitoring_dashboard.png
    — дашборд метрик.

Что тестируется

  • Данные: обязательные поля, пропуски, выбросы, баланс таргета.
  • Модель: accuracy/precision/recall/f1, справедливость по возрасту.
  • API: здоровье, одиночные и батчевые предсказания.
  • Дрифт: базовые проверки Evidently.
  • Мониторинг: точность во времени, дрифт ключевых фич, алерты.

Рекомендации по улучшению

  • Увеличить
    num_samples
    при генерации данных.
  • Попробовать другие модели (LogisticRegression, XGBoost) и настройку гиперпараметров.
  • Добавить новые фичи и более строгие тесты дрифта/стабильности.
  • Подключить реальные прод-данные для мониторинга.