← Назад к вопросам

Когда важен recall?

2.0 Middle🔥 181 комментариев
#Машинное обучение#Метрики и оценка моделей

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI30 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Когда важен Recall?

Это фундаментальный вопрос в ML, потому что выбор между recall и precision кардинально меняет подход. Recall важен в совсем других сценариях, чем precision.

Определение Recall

Recall (полнота) — это доля правильно предсказанных позитивных примеров от всех позитивных примеров:

Recall = TP / (TP + FN)

TP = True Positives (правильно предсказали да)
FN = False Negatives (не предсказали да, хотя нужно было)

Простой пример: если есть 100 больных пациентов и модель нашла 90, то recall = 90%.

Когда Recall критичен

1. Медицинская диагностика Пропустить болезнь опаснее, чем ложно-положительный результат:

  • Обнаружение рака: recall > 95%
  • Обнаружение инфекции в анализах: recall > 99%
  • Безопасность пациентов важнее ложных тревог

2. Безопасность и fraud detection Пропустить мошенника дороже, чем заблокировать честного пользователя:

  • Обнаружение кредитных мошенничеств: recall > 90%
  • Детектирование вирусов в файлах: recall > 99%
  • Спам-фильтры в email: recall > 85%

3. Рекомендационные системы (контекст зависит!)

Если пользователю нужно найти хоть что-то полезное:

  • YouTube: recall > precision
  • Поиск в документах: recall > precision
  • Job recommendations: recall > precision

4. Дефектная продукция Пропустить брак опаснее, чем отклонить хороший товар:

  • Батарейки с дефектом: recall > 99%
  • Авиационные компоненты: recall > 99.9%
  • Пищевая промышленность: recall > 95%

5. Поиск преступников и безопасность

  • CCTV распознавание лиц: recall > 90%
  • Обнаружение террористических угроз: recall > 99%
  • Контроль на границе: recall > 95%

Когда Precision важнее

1. Email рассылка и маркетинг Пусть немного людей не получат письмо, но спама не будет:

  • Фильтр spam: precision > recall
  • Email рассылка: precision > recall

2. Product recommendations Лучше ничего не предложить, чем что-то не релевантное:

  • Премиум-сегмент Amazon: precision > recall
  • Персональные предложения: precision > recall

3. Hiring decisions Пусть потеряешь кандидатов, но наймёшь хороших:

  • HR фильтры: precision > recall

Как оптимизировать Recall

Если нужен высокий recall, понизь threshold:

from sklearn.metrics import precision_recall_curve
import numpy as np

y_pred_proba = model.predict_proba(X_test)[:, 1]
precisions, recalls, thresholds = precision_recall_curve(y_true, y_pred_proba)

idx = np.where(recalls >= 0.95)[0][0]
optimal_threshold = thresholds[idx]

y_pred_optimized = (y_pred_proba >= optimal_threshold).astype(int)
print(f'Recall: {recall_score(y_true, y_pred_optimized)}')

Результат: recall подпрыгнет на 95%+, но precision упадёт. Это нормально — нам нужны все позитивные примеры, даже ценой ложных срабатываний.

F1 Score и F2 Score

Когда нужен баланс или уклон в сторону recall:

from sklearn.metrics import f1_score, fbeta_score

f1 = f1_score(y_true, y_pred)
f2 = fbeta_score(y_true, y_pred, beta=2)  # уклон в recall
f_half = fbeta_score(y_true, y_pred, beta=0.5)  # уклон в precision

Вывод

Recall важен когда:

  • Стоимость False Negative >> стоимости False Positive
  • Примеры: медицина, fraud, безопасность, поиск

Precision важен когда:

  • Стоимость False Positive >> стоимости False Negative
  • Примеры: спам-фильтр, hiring, премиум-рекомендации