Ответ
Precision (точность) — это метрика для задач классификации, которая отвечает на вопрос: «Среди всех объектов, которые модель предсказала как положительные, какая доля действительно является положительными?».
Формула: [ Precision = frac{TP}{TP + FP} ] где:
- TP (True Positive) — верно предсказанные положительные классы.
- FP (False Positive) — ложно предсказанные положительные классы (ошибка 1-го рода).
Практический пример: В задаче детекции спама в email, если наша модель пометила 100 писем как спам, и 90 из них действительно были спамом, то precision = 90/100 = 0.9.
Код для расчета:
from sklearn.metrics import precision_score
# Бинарная классификация
y_true = [1, 1, 0, 1, 0, 0]
y_pred = [1, 0, 1, 1, 0, 0] # Модель ошиблась на третьем примере (FP)
precision = precision_score(y_true, y_pred)
print(f'Precision: {precision:.2f}') # 0.67 (2 TP / (2 TP + 1 FP))
Когда precision критически важна? В задачах, где цена ложного срабатывания (FP) высока:
- Медицинская диагностика: Объявить здорового человека больным (FP) — серьезная ошибка, ведущая к ненужному стрессу и лечению.
- Поиск мошенничества: Блокировка легальной транзакции (FP) ухудшает пользовательский опыт.
Precision обычно находится в компромиссе (trade-off) с Recall. Увеличение порога классификации повышает precision (модель становится «увереннее»), но снижает recall (модель пропускает часть положительных примеров).