Перейти к содержимому
7 / 10

Как честно валидировать детектор аномалий на исторических данных?

Три правила. Первое — только временное разбиение: обучение на прошлом, проверка на будущем, никаких перемешиваний, иначе модель видит будущее через сезонность и корреляции соседних точек. Второе — воспроизвести задержки прода: если фича «средний чек за 30 дней» в проде считается по данным с лагом в час, в бэктесте она должна считаться так же, иначе получите классическую утечку через будущее. Третье — оценивать по инцидентам, а не по точкам: считать долю пойманных инцидентов, медианное время до обнаружения и число ложных тревог в сутки; поточечные метрики на рядах измеряют длительность инцидентов, а не качество детектора. Практический протокол — скользящий бэктест: окно обучения едет по истории, на каждом шаге модель переобучается на прошлом и оценивается на следующем куске. Дополняет его прогон по известным инцидентам: девяносто дней истории с пятнадцатью подтверждёнными случаями дают реалистичную оценку задолго до продакшена.

Как честно валидировать детектор аномалий на исторических данных? | JScriptiser