Evidently и кастомные метрики

Evidently AI это библиотека, которая помогает анализировать модели машинного обучения во время проверки или мониторинга продакшена.

Evidently AI
Evidently AI

Инструмент генерирует интерактивные визуальные отчеты и профили JSON из файлов pandas DataFrame или csv. На данный момент доступно 6 отчетов:

  • Data Drift — обнаруживает изменения в распределении фичей
  • Numerical Target Drift — обнаруживает изменения числового таргета и поведение фичей
  • Categorical Target Drift — обнаруживает изменения в категориального таргета и поведение фичей
  • Regression Model Performance — анализирует производительность регрессионной модели и ошибки модели
  • Classification Model Performance — анализирует производительность и ошибки модели классификации. Работает как для бинарных, так и для мультиклассовых моделей.
  • Probabilistic Classification Model Performance — анализирует производительность модели вероятностной классификации, качество калибровки модели и ошибки модели. Работает как для бинарных, так и для мультиклассовых моделей.

Метрики

Метрика — это компонент, который оценивает определенный аспект качества данных или модели.

Метрики Evidently AI
Метрики Evidently AI
Метрики Evidently AI
Метрики Evidently AI

Пресет метрик

Пресет метрик — это предварительно созданный отчет, который объединяет метрики для конкретного варианта использования (например, DataDriftPreset, ReгрессияPreset и т. д.).

Пресет метрик Evidently AI
Пресет метрик Evidently AI

https://docs.evidentlyai.com/readme/core-concepts

Как это работает?

Создайте отчет по эталонным и текущим наборам данных

  • Reference dataset — это базовый набор данных для сравнения. Это может быть набор данных для обучения или предыдущие данные продакшена.
  • Current dataset — второй набор данных, сравниваемый с базовым. Он может содержать самые последние данные продакшена.
Как работает Evidently AI
Как работает Evidently AI

Реализация кастомной метрики

Бывают случае в работе, когда необходимо мониторить метрики, которых нет в Evidently. Например, в телекоме очень любят метрику lift. Бизнес её любит и очень хорошо понимает. Подробнее можно про lift метрику можно почитать тут.

Для добавлении новой метрики необходимо сделать две вещи:

  • Реализовать метрику
  • Добавить визуализацию на plotly — по желанию

В официальной документации есть пример реализации кастомной метрики: https://docs.evidentlyai.com/user-guide/customization/add-custom-metric-or-test

Но мы пойдем более сложным путем и реализуем метрику сразу в Evidently для того, что бы потом сделать pull request

Куда добавлять:

  • /src/evidently/calculations — добавить метрику в зависимости от задачи (классификация, регрессия и т.д.)
  • /src/evidently/metrics — добавить код расчета метрики в зависимости от задачи
  • /src/evidently/renderers/html_widgets.py — визуализация метрик
  • src/evidently/metrics/init.py — инициализируем метрики
  • src/evidently/metric_results.py — добавить визуализацию

Код метрики и можно посмотреть в уже принятом pull request

Вызов метрики

#probabilistic binary classification
classification_report = Report(metrics=[
    ClassificationLiftCurve(),
    ClassificationLiftTable(),
])

classification_report.run(reference_data=bcancer_ref, current_data=bcancer_cur)
classification_report
Lift metric table Evidently AI
Lift metric table Evidently AI
Lift metric curve Evidently AI
Lift metric curve Evidently AI

Cтань экспертом в Machine Learning и MLOps

Share it

Если вам понравилась заметка - подписывайтесь на мой канал в телеграме https://t.me/renat_alimbekov или вы можете поддержать меня Become a Patron!


Интересные записи в этой рубрике: