Представь: ты написал программу, которая определяет, болен человек или здоров. Программа работает, даёт ответы... Но как понять, насколько хорошо она работает?
Давай разберём все возможные ситуации на примере медицинского теста:
Четыре возможных исхода
True Positive (TP) — Истинно положительный
Человек болен, модель сказала "болен" ✅
Правильный диагноз!
True Negative (TN) — Истинно отрицательный
Человек здоров, модель сказала "здоров" ✅
Тоже правильно!
False Positive (FP) — Ложно положительный (Ошибка I рода)
Человек здоров, но модель сказала "болен" ❌
Ложная тревога! (Человек здоров, а мы его напугали)
False Negative (FN) — Ложно отрицательный (Ошибка II рода)
Человек болен, но модель сказала "здоров" ❌
Опасная ошибка! (Пропустили болезнь)
📊 Матрица ошибок (Confusion Matrix)
Всё это можно красиво представить в таблице:
| |
Предсказание модели |
| Реальность |
Класс 0
(Здоров) |
Класс 1
(Болен) |
Класс 0
(Здоров) |
TN
(правильно) |
FP
(ошибка!) |
Класс 1
(Болен) |
FN
(ошибка!) |
TP
(правильно) |
60 человек здоровы (класс 0)
40 человек больны (класс 1)
Результаты:
TN = 55 — правильно определили здоровых
FP = 5 — ошибочно назвали больными здоровых людей
FN = 8 — пропустили 8 больных (сказали, что здоровы)
TP = 32 — правильно выявили больных
| |
Предсказание модели |
| Реальность |
Класс 0
(Здоров) |
Класс 1
(Болен) |
Класс 0
(Здоров = 60) |
55 |
5 |
Класс 1
(Болен = 40) |
8 |
32 |
🎓 Важно понимать
Диагональ (TN и TP) — это наши правильные ответы!
Остальные клетки (FP и FN) — это ошибки, и они разные!
FP = напугали здорового человека зря
FN = не заметили больного (это опаснее!)