Представь: ты делаешь модель для поиска редкой болезни. Из 1000 человек болеют только 10 человек (1%).
"Ленивая" модель
Что если написать программу, которая всегда говорит "здоров"?
def lazy_model(x):
return 0 # всегда "здоров"
Давай посчитаем её Accuracy:
- TN = 990 (правильно: 990 здоровых)
- FP = 0 (не обозвала никого больным)
- FN = 10 (пропустила всех 10 больных!)
- TP = 0 (не нашла ни одного больного)
Accuracy = (0 + 990) / 1000 = 99%!
Проблема: Модель имеет 99% Accuracy, но она БЕСПОЛЕЗНА! Она не находит ни одного больного человека!
Вывод
Когда классы несбалансированы (одного класса намного больше), Accuracy может врать!
Нужны другие метрики, которые покажут:
- Сколько больных мы реально нашли?
- Сколько ошибок мы делаем?