Ответ
Recall (полнота или чувствительность) — это метрика классификации, которая отвечает на вопрос: «Какую долю всех реальных положительных объектов модель смогла правильно обнаружить?».
Формула: [ Recall = frac{TP}{TP + FN} ] где:
- TP (True Positive) — верно предсказанные положительные классы.
- FN (False Negative) — ложноотрицательные, т.е. реальные положительные объекты, которые модель пропустила (ошибка 2-го рода).
Практический пример: В задаче поиска дефектных товаров на производстве, если в партии из 1000 единиц брака действительно 50, а наша система нашла только 40 из них, то recall = 40/50 = 0.8. Мы пропустили 10 бракованных товаров (FN).
Код для расчета:
from sklearn.metrics import recall_score
# Пример: диагностика заболевания
y_true = [1, 0, 1, 1, 0, 1] # 4 больных пациента
# Модель предсказала 3-го пациента здоровым (FN)
y_pred = [1, 0, 0, 1, 0, 1]
recall = recall_score(y_true, y_pred)
print(f'Recall: {recall:.2f}') # 0.75 (3 TP из 4 реальных положительных)
Когда recall критически важен? В задачах, где пропуск положительного случая (FN) имеет высокую стоимость:
- Скрининг заболеваний: Пропустить больного пациента — опасная ошибка.
- Поиск угроз безопасности: Не обнаружить реальную угрозу.
- Поисковые системы: Пользователь хочет найти все релевантные документы.
Для повышения recall часто приходится жертвовать precision, снижая порог классификации. Это приводит к увеличению FP (ложных срабатываний). Оптимальный баланс между precision и recall определяется бизнес-требованиями и часто оценивается с помощью F1-score (среднее гармоническое) или Precision-Recall кривой.