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 — анализирует производительность модели вероятностной классификации, качество калибровки модели и ошибки модели. Работает как для бинарных, так и для мультиклассовых моделей.
Метрики
Метрика — это компонент, который оценивает определенный аспект качества данных или модели.
Пресет метрик
Пресет метрик — это предварительно созданный отчет, который объединяет метрики для конкретного варианта использования (например, DataDriftPreset, ReгрессияPreset и т. д.).
https://docs.evidentlyai.com/readme/core-concepts
Как это работает?
Создайте отчет по эталонным и текущим наборам данных
- Reference dataset — это базовый набор данных для сравнения. Это может быть набор данных для обучения или предыдущие данные продакшена.
- Current dataset — второй набор данных, сравниваемый с базовым. Он может содержать самые последние данные продакшена.
Реализация кастомной метрики
Бывают случае в работе, когда необходимо мониторить метрики, которых нет в 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
Разговоры о Data Science – закрытый канал для общения на тему карьеры, развития профессиональных навыков и применения навыков на работе.