Ответ
TPR (True Positive Rate, Полнота, Recall, Чувствительность) и FPR (False Positive Rate) — это две фундаментальные метрики, оценивающие разные аспекты ошибок бинарного классификатора. Они являются осями для построения ROC-кривой.
| Метрика | Формула | Интерпретация |
|---|---|---|
| TPR (Recall) | TP / (TP + FN) |
Какую долю реальных положительных объектов модель правильно нашла? Высокий TPR означает, что модель редко пропускает целевые случаи (мало False Negatives). |
| FPR | FP / (FP + TN) |
Какую долю реальных отрицательных объектов модель ошибочно пометила как положительные? Низкий FPR означает, что модель редко «взывает тревогу» на негативных примерах (мало False Positives). |
Практический расчет и интерпретация:
from sklearn.metrics import confusion_matrix
y_true = [1, 0, 1, 1, 0, 0] # 1 - положительный класс (например, болезнь)
y_pred = [1, 1, 1, 0, 0, 0] # предсказания модели
# Расчёт матрицы ошибок
tn, fp, fn, tp = confusion_matrix(y_true, y_pred).ravel()
# Расчёт метрик
tpr = tp / (tp + fn) # = 2 / (2 + 1) ≈ 0.67
fpr = fp / (fp + tn) # = 1 / (1 + 2) ≈ 0.33
print(f"TPR (Recall): {tpr:.2f}") # Модель находит 67% всех больных.
print(f"FPR: {fpr:.2f}") # При этом у 33% здоровых она ошибочно диагностирует болезнь.
Идеальный классификатор имеет TPR = 1 (находит все положительные) и FPR = 0 (не ошибается на отрицательных). На практике мы балансируем между этими метриками, сдвигая порог классификации. ROC-кривая, строящаяся по парам (FPR, TPR), наглядно показывает этот компромисс.