Статья Автор: Деникина Н.В., Деникин А.В.

Когда Accuracy обманывает?

Представь: ты делаешь модель для поиска редкой болезни. Из 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 может врать!

Нужны другие метрики, которые покажут:

  • Сколько больных мы реально нашли?
  • Сколько ошибок мы делаем?
Печать