Готовил для вас материал по PSI и VIF. И нашел интересную статью с валидацией ML моделей. Решил немного ее пересказать и добавить свое видение.
Для чего нужна валидация модели - максимально снизить модельный риск (вероятность полученияя недостоверных прогнозов, несоответствие заявленным метрикам, банальное устаревание моделей или неправильный вывод в прод).
А почему нам недостаточно простой оценки на отложенных выборках?
1. Распределение данных может кардинально измениться от того,что было на тренировке (например, статистически значимо изменилась доля целевых случаев)
2. Оценкой общих метрик работы модели невозможно оценить изменение отдельных входных признаков, их релевантность модели. Также сложно хочется видеть результаты на корнер-кейсах.
3. Есть вероятность попадания в финальный список фичей признака, не соответствующего логике бизнеса.
Что же нам важно оценивать на валидации?
1. В принципе скор модели и его стабильность. Он не должен быть ниже (выше) определенного порога, и при этом должен быть стабильным нна разных выборках (TRAIN, OUT-OF-SAMPLE, OUT-OF-TIME)
2. Стабильность признаков. Здесь как раз и применяется критерий PSI для поиска таких моментов, чтобы у нас вдруг фичи на трейне и OOT не отличались своим распределением. Иначе модель училась на одних входах, а предсказывает на других.
3. Калибровка вероятностей на выходе моделей. Буквально можно сформулировать как: mean(y') ~ mean(y). Нужно для понимания того, что модель в среднем формирует те же вероятности наступления целевых событий
4. В статье еще написано про Концентрацию. Это очень близко к пункту с калибровкой, поэтому я бы этот пункт переформулировал это как некоторый баланс по попаданию в бакеты по вероятностям.
Ещё можно добавить посегментный анализ предиктов модели, но это не обязательно для валидации, хотя очень важно для аналитики.
Там внутри есть классная табличка по тестам.
Это были количественные тесты. Существуют ещё качественные, которые связаны с разработкой именно модели. Тут условно валидатору надо попробовать опровергнуть дизайн модели и вообще ее обучение и выбор признаков, но при этом предложить лучший подход на тех же данных. Если это удаётся, то модель возвращают в разработку. Если нет, то считайте модель прошла валидацию (очевидно, что это не гарантирует наилучший результат). Помимо этого конечно же должна быть качественная документация и воспроизводимость обучения модели.
Интересно описан подход с Model Performance Predictor, однако я особо эти штуки не делал, хотя по логике это примерно как дополнительно обучить модель GARCH, чтобы оценить волатильность метрик в будущем.
В заключение есть хорошая табличка с типами тестов, применимых для валидации.
В целом, статья неплохая
#ml
Post #129
468
- 🔥 3
- 🥰 1