Собесов

alexeygrigorev/data-science-interviews: precision, recall, F1, ROC-AUC

Статистика и теорверМетрики классификацииСредняяMiddle

Условие

Объясните precision, recall, F1 и ROC-AUC. Когда какая метрика подходит лучше? Что делать, если классы несбалансированы (например, 1% позитивов)?

Решение

Подход

Predict + Predict −
Actual + TP FN
Actual − FP TN
  • Precision = TP / (TP + FP) — «из тех, кого назвали позитивом, сколько реально позитив». Важно, когда дорог FP (фрод — забанить честного клиента).
  • Recall = TP / (TP + FN) — «из всех настоящих позитивов сколько нашли». Важно, когда дорог FN (онкология — пропустить больного).
  • F1 — гармоническое среднее precision и recall. Используем, когда нужен баланс и нет явного приоритета.
  • ROC-AUC — площадь под ROC-кривой (TPR vs FPR при разных порогах). Не зависит от выбора порога, измеряет ранжирующую способность.

Что делать при дисбалансе классов

  • Accuracy неинформативен: предсказывать всегда «негатив» при 1% позитивов даст 99%.
  • PR-AUC (precision-recall AUC) лучше показывает качество на редком классе, чем ROC-AUC, который оптимистичен при перекосе.
  • Смотреть метрики только по позитивному классу или confusion matrix.
  • Бизнес-метрика: «сколько фрод-кейсов поймали при допустимых X% ложных срабатываний».
from sklearn.metrics import (
    precision_score, recall_score, f1_score,
    roc_auc_score, average_precision_score
)
 
precision_score(y, y_pred)
recall_score(y, y_pred)
f1_score(y, y_pred)
roc_auc_score(y, y_proba)             # по вероятностям, не по бинарным
average_precision_score(y, y_proba)   # PR-AUC

Подводные камни

  1. ROC-AUC на сильно несбалансированных классах вводит в заблуждение: «0.9 — отлично», а PR-AUC может быть 0.2.
  2. F1 одинаково взвешивает precision и recall. Если ошибки разной цены — лучше F-beta или PR-кривая с выбором рабочей точки.
  3. ROC-AUC и accuracy надо считать по разным сущностям: AUC — по вероятностям, accuracy — по бинарным предсказаниям после порога.

Эталонный ответ

Precision — точность среди предсказанных позитивов; Recall — полнота поимки настоящих позитивов; F1 — их гармоническое среднее; ROC-AUC — ранжирующая способность. На несбалансированных данных предпочитайте PR-AUC и метрики по позитивному классу.

Хочешь увидеть разбор?

Зарегистрируйся бесплатно — откроется развёрнутое решение этой задачи и ещё 4 на выбор.

Зарегистрироваться и увидеть разбор
Уже есть аккаунт? Войти