Что делать, если для бизнеса важнее ошибка по нулевому или первому классу
Что проверяют
Умеете ли вы переводить бизнесовую фразу «этот промах дороже» в настройку модели, и знаете ли, что менять для этого обычно надо порог, а не архитектуру. Заодно проверяют, аккуратны ли вы в терминах.
Как отвечать
Первым делом уточнить постановку: какой класс считается положительным и во сколько раз одна ошибка дороже другой. Без этого понять, о чём речь, нельзя, и уточняющий вопрос тут часть правильного ответа.
Дальше схема простая: модель отдаёт вероятность, решение принимает порог. Порог подбирается на отложенной выборке под ту метрику, которая отражает цену ошибки:
- дороже пропуск целевого класса, значит тянем recall, метрика
F-betaс бетой больше единицы; - дороже ложное срабатывание, значит тянем precision;
- если цены известны в деньгах, честнее считать ожидаемые потери и брать порог, который их минимизирует.
losses = [(t, fp_cost * fp(t) + fn_cost * fn(t)) for t in thresholds]
best = min(losses, key=lambda pair: pair[1])[0]При сильном дисбалансе смотреть PR-кривую, а не ROC: вторая выглядит прилично даже у слабой модели. Помимо порога есть веса классов и примеров в функции потерь, а также калибровка вероятностей, без которой порог означает не то, что кажется. Полезно назвать и третий исход: серая зона уходит на ручную проверку, а порог подбирается под её реальную пропускную способность.
Заканчивать матрицей ошибок в абсолютных числах: сколько объектов и какой ценой.
Где спотыкаются
Путают термины. Ошибка первого рода это ложное срабатывание, и она не обязана совпадать с ошибкой на классе с номером один: какой класс положительный, зависит от разметки. Заученная наизусть связка даёт перевёрнутый ответ.
Гонятся за долей верных ответов или переобучают модель ради того, что решается сдвигом порога. При одном проценте положительных примеров константный ответ даёт девяносто девять процентов правильных, и это не модель.
Подбирают порог на той же выборке, где потом меряют качество, и забывают, что при смене доли положительных примеров в проде precision поплывёт, а recall останется прежним.