KS и PSI: добавьте флаги алертов в pandas DataFrame
В таблице мониторинга уже рассчитаны показатели дрейфа для каждого признака. Реализуйте solve(payload), которая добавит флаги по правилам условия и обработает отсутствующие значения. Разбор подготовки данных, оценки и деплоя моделей продолжайте в платном курсе «Data Scientist: от данных до деплоя моделей» — откройте программу.
Агрегация drift-метрик с флагами превышения порогов
В промышленном мониторинге метрик drift для признаков часто требуется не только считать числовые показатели (KS p-value, PSI), но и формировать сводный DataFrame с дополнительной информацией, указывающей, какие значения превышают заданные пороги.
Ваша задача — реализовать функцию, которая принимает DataFrame с результатами вычисления KS-теста и PSI по признакам и возвращает DataFrame, где к исходным данным добавлены два булевых столбца:
ks_alert— True, если p-value KS-теста меньше 0.05 (иначе False);psi_alert— True, если PSI больше 0.2 (иначе False).
Если в исходных данных для метрик встречаются пропуски (NaN), то соответствующий флаг ставится в False.
Входные данные:
df_metrics— pandas DataFrame, индекс — имена признаков;- колонки:
ks_pvalue(float или NaN)psi(float или NaN)
Выходные данные:
- pandas DataFrame, расширенный двумя колонками
ks_alertиpsi_alertс булевыми значениями.
Example test
import pandas as pd
import numpy as np
df_metrics = pd.DataFrame({
'ks_pvalue': [0.04, 0.06, np.nan, 0.03],
'psi': [0.15, 0.22, 0.05, np.nan]
}, index=['feat1', 'feat2', 'feat3', 'feat4'])
# Ожидаемый результат:
# ks_pvalue psi ks_alert psi_alert
# feat1 0.04 0.15 True False
# feat2 0.06 0.22 False True
# feat3 NaN 0.05 False False
# feat4 0.03 NaN True False
Без регистрации. Гостевая проверка не сохраняет прогресс. Для сохранения перейдите к уроку.
Отправьте решение, чтобы увидеть результаты тестов.
