В каких случаях точность (precision) не имеет значения, а полнота (recall), наоборот, важна?

Ответ

Полнота (recall) становится критически важной, а точностью (precision) можно в разумных пределах пожертвовать в задачах, где цена пропущенного положительного случая (false negative) значительно превышает цену ложной тревоги (false positive).

Ключевые примеры:

  • Медицинская диагностика (скрининг на заболевание): Пропуск больного пациента (FN) имеет катастрофические последствия, в то время как ложноположительный результат (FP) ведет лишь к дополнительным, более точным проверкам.
  • Поиск мошеннических операций: Пропуск мошеннической транзакции (FN) означает прямые финансовые потери для банка или клиента. Ложное срабатывание (FP) обычно приводит лишь к временной блокировке карты и звонку службы безопасности для верификации, что является приемлемым компромиссом.
  • Поисково-спасательные операции: Главная цель — найти всех пострадавших (максимизировать recall). Ложные цели (FP) отнимают время и ресурсы, но это предпочтительнее, чем оставить человека без помощи.

Практический подход: В таких сценариях мы сознательно снижаем порог классификации модели, чтобы она стала более «чувствительной» и предсказывала положительный класс чаще. Это увеличивает recall за счет снижения precision. Окончательный порог выбирается на основе анализа кривой Precision-Recall и бизнес-требований.

Ответ 18+ 🔞

А, ну это же классика, ебать мои старые костыли! Сейчас объясню на пальцах, без всей этой заумной пыли.

Представь, что ты поставил на входе в клуб здоровенного верзилу-вышибалу. Его задача — не пускать несовершеннолетних. Так вот:

  • Полнота (recall) — это сколько из всех реальных пацанов до 18 лет он смог выловить и не пустить. Идеал — 100%, то есть ни один сопляк не проскочил.
  • Точность (precision) — это сколько из всех, кого он отфильтровал, реально были пацанами. Если он начал хватать всех подряд, включая бородатых 30-летних мужиков, точность пиздец как падает.

Так вот, в некоторых ситуациях нам критически важно, чтобы НИ ОДИН нужный пацан не проскочил, а на то, что вышибала пару раз ошибётся и задерёт какого-нибудь взрослого лысого дядьку — нам да похуй. Лысый потерпит, зато детишки все на месте.

Где это работает, ёпта?

  1. Диагностика рака на скрининге. Сука, главная задача — не пропустить ни одного больного. Совсем. Вот вообще. Лучше десять здоровых людей отправить на дополнительные, пусть даже неприятные, обследования (это наши ложные срабатывания, FP), чем один больной человек уйдёт домой с мыслью, что он здоров (это наш пропуск, FN). Цена ошибки — пиздец какая разная. Тут recall — священная корова.

  2. Антифрод в банке. Система ловит мошеннические операции. Что страшнее: заблокировать карту законопослушному мужику, когда он в 3 ночи решил купить элитный виски в интернете (FP)? Он позвонит, поругается, но всё подтвердит. Или пропустить настоящую мошенническую транзакцию, когда с его счёта спиздят все деньги (FN)? Очевидно же. Опять катимся в сторону полноты.

  3. Поиск людей после землетрясения. Тут вообще терпения ноль ебать. Задача дронов и алгоритмов — отметить ВСЕ возможные признаки жизни среди завалов. Да, 90% отметок могут оказаться кучей тряпья или мёртвой собакой (FP). Но если они пропустят хотя бы один живой силуэт человека (FN) — это уже катастрофа. Recall зашкаливает, precision летит в тартарары, и это абсолютно нормально.

Как этого добиться на практике? Всё просто до безобразия. У нашей модели есть некая «кнопка уверенности» — порог классификации. По умолчанию он часто стоит на 0.5. Чтобы ловить всех подряд, мы эту планку опускаем. Сделаем её 0.1, 0.01! Модель станет параноиком: «О, тут тень криво легла — кажется, больной! А тут пятно на снимке — подозрение ебать чувствую!». Она начнёт орать «Тревога!» по любому поводу. Полнота взлетит до небес, но вместе с этим появится овердохуища ложных срабатываний. И это — осознанный и правильный выбор.

Смотрим на кривую Precision-Recall и выбираем точку, где recall уже высокий, а precision хоть и сдохла, но ещё не совсем разложилась. Всё, задача решена.