Recall (полнота) — это метрика, которая показывает, какую долю всех реально положительных объектов наша модель смогла правильно найти и идентифицировать.

Проще говоря:

Recall отвечает на вопрос: “Из всех существующих больных/мошенников/спам-писем, сколько процентов мы нашли?”


Формула

Recall = True Positives (TP) / (True Positives (TP) + False Negatives (FN))

Или, если еще проще:

Recall = (Число верно найденных “положительных”) / (Всего реально “положительных” в данных)


Смысл на интуитивном уровне

Recall — это метрика “охвата” или “чувствительности”. Высокий Recall означает, что модель пропускает очень мало реальных положительных случаев.

Вопрос, на который отвечает Recall: “Мы не пропускаем ли слишком много того, что ищем?”


Классический пример: Поиск преступников по базе

Представьте, что полиция ищет 10 преступников в городе с помощью системы распознавания лиц.

  • True Positive (TP): Система верно опознала преступника. (Правильное обнаружение)
  • False Negative (FN): Система не узнала преступника, который был перед камерой. (Пропуск цели)

Рассчитаем Recall:

  • Recall = TP / (TP + FN)

Сценарий:

  • Всего реальных преступников: 10 человек.
  • Система распознавания лиц:
    • Верно опознала 8 преступников (TP = 8).
    • Пропустила 2 преступников (FN = 2). Они прошли мимо камер, но система их не узнала.

Recall = 8 / (8 + 2) = 8 / 10 = 0.8 (или 80%)

Вывод: Наша система нашла 80% от всех реально разыскиваемых преступников. Это и есть Recall.


Recall vs. Precision: Компромисс (Trade-off)

Чтобы понять Recall до конца, его всегда нужно сравнивать с Precision.

МетрикаВопросНа что делает упор?
Recall (Полнота)Какую долю реальных “да” мы нашли?Полнота охвата. Минимизация False Negatives (FN).
Precision (Точность)Насколько мы точны, когда предсказываем “да”?Качество прогнозов. Минимизация False Positives (FP).

Давайте вернемся к примеру с преступниками. Что, если мы хотим повысить Recall до 100%? Мы можем настроить систему так, чтобы она “кричала” на каждого, кто хоть каплю похож на преступника.

  • Мы найдем всех 10 преступников (Recall = 100%!).
  • Но при этом мы также задержим 1000 невинных людей, которые случайно оказались похожи (очень высокий FP).

В этом случае наш Precision будет ужасным, потому что среди всех срабатываний системы (1010) только 10 будут верными.

Высокий Recall = “Лучше ложная тревога, чем пропустить цель”. Мы пытаемся захватить как можно больше реальных положительных случаев, даже ценой ложных срабатываний.


Пример, где важен высокий Recall

Задача: Диагностика тяжелого заболевания (например, рака).

  • Положительный класс: Болен.
  • Отрицательный класс: Здоров.

False Negative (FN) в этой задаче — это пропустить болезнь у больного человека. Это смертельно опасно, так как человек не получит необходимое лечение.

False Positive (FP) — это сказать здоровому человеку, что он болен. Это приведет к стрессу и дополнительным обследованиям, но это — меньшая из зол.

Какую метрику максимизировать? В такой ситуации врачи стремятся к высокому Recall. Они хотят найти ВСЕХ больных. Они готовы к тому, что некоторые здоровые люди пройдут через дополнительные тесты (пожертвовать Precision), но они не могут позволить себе пропустить больного.

Когда использовать Recall?

Recall — ваша ключевая метрика, когда цена False Negative (пропуска цели) очень высока.

Примеры задач:

  1. Медицинская диагностика: Пропустить серьезное заболевание у пациента.
  2. Поиск мошеннических транзакций: Пропустить мошенническую операцию, что приведет к прямым финансовым потерям.
  3. Контроль качества на производстве: Пропустить бракованную деталь, которая может вывести из строя весь продукт.
  4. Поисковые системы: Пропустить релевантный документ по запросу пользователя (пользователь не найдет то, что искал).

Краткий итог

  • Recall — это доля истинных положительных срабатываний среди всех реально положительных случаев в данных.
  • Она измеряет способность модели находить все нужные объекты.
  • Высокий Recall важен, когда пропуск цели (False Negative) недопустим или очень дорог.
  • Всегда существует компромисс (trade-off) между Recall и Precision. Невозможно максимизировать обе метрики одновременно без компромисса. Часто для поиска баланса используют F1-меру.