Accuracy (точность) — это одна из самых простых и интуитивно понятных метрик для оценки классификационных моделей машинного обучения.

Если говорить просто:

Accuracy — это доля правильных ответов модели от общего числа всех предсказаний.


Формула

Accuracy рассчитывается по очень простой формуле:

Accuracy = (Number of Correct Predictions) / (Total Number of Predictions)

Или, если использовать элементы матрицы ошибок (Confusion Matrix):

где:

  • (True Positive) — Истинно-положительные: модель верно предсказала положительный класс.
  • (True Negative) — Истинно-отрицательные: модель верно предсказала отрицательный класс.
  • (False Positive) — Ложно-положительные: модель неверно предсказала положительный класс (ошибка 1-го рода).
  • (False Negative) — Ложно-отрицательные: модель неверно предсказала отрицательный класс (ошибка 2-го рода).

Пример для понимания

Представьте, что у нас есть модель, которая определяет, болен ли человек (1) или здоров (0). Мы протестировали её на 100 пациентах.

Результаты:

  • Правильно предсказано болезней (TP): 45
  • Правильно предсказано здоровых (TN): 40
  • Ошибочно предсказано болезней (FP): 8 (здорового человека посчитали больным)
  • Ошибочно предсказано здоровых (FN): 7 (больного человека посчитали здоровым)

Расчет Accuracy:

  • Правильные прогнозы: TP + TN = 45 + 40 = 85
  • Всего прогнозов: 100
  • Accuracy = 85 / 100 = 0.85 или 85%

Вывод: Наша модель правильно ставит диагноз в 85% случаев.


Плюсы и минусы Accuracy

Плюсы:

  • Простота: Легко вычислить и понять.
  • Интуитивность: Понятие “процент правильных ответов” понятно всем.
  • Хорошая метрика, когда классы в данных сбалансированы (например, 50% котов и 50% собак в наборе данных).

Минусы (ОЧЕНЬ важные!):

Accuracy может быть крайне вводящей в заблуждение метрикой в случае несбалансированных данных.

Классический пример “Проклятия несбалансированных данных”

Задача: Определить, есть ли у транзакции признаки мошенничества.

  • Данные: Из 10 000 транзакций только 100 являются мошенническими (1%), а 9 900 — легальными (99%).

Рассмотрим “тупую” модель, которая всегда предсказывает “Легальная”:

  • TP = 0 (мошеннические не найдены)
  • TN = 9900 (все легальные верно определены)
  • FP = 0 (ложных обвинений нет)
  • FN = 100 (все мошеннические пропущены)

Accuracy = (0 + 9900) / 10000 = 99%

Вывод по accuracy: У нас супер-модель с точностью 99%!

Реальность: Модель не нашла ни одного мошенничества и является абсолютно бесполезной для нашей задачи. Высокий accuracy достигнут просто за счет угадывания большинства класса.


Когда использовать Accuracy?

  • Когда классы примерно сбалансированы. Например, определение пола по фото (~50/50) или классификация кошек и собак.
  • Как одна из многих метрик. Никогда не полагайтесь только на accuracy. Всегда смотрите на другие метрики.

Какие метрики использовать вместо / вместе с Accuracy?

В случае несбалансированных данных или когда цена разных ошибок неодинакова, используют:

  1. Precision (Точность): Какая доль предсказанных “мошенничеств” была настоящей?
    • Вопрос: Насколько мы можем доверять, что если модель сказала “да”, то это правда “да”?
  2. Recall (Полнота): Какую долю настоящих “мошенничеств” мы нашли?
    • Вопрос: Не пропускаем ли мы слишком много реальных событий?
  3. F1-Score (F-мера): Гармоническое среднее между Precision и Recall. Полезен, когда нужно найти баланс между двумя этими метриками.
  4. AUC-ROC: Показывает, насколько хорошо модель отделяет один класс от другого в целом.

Краткий итог

  • Accuracy — это доля правильных ответов.
  • Это хорошая и простая метрика для быстрой оценки и для сбалансированных данных.
  • Это очень плохая и обманчивая метрика для несбалансированных данных.
  • Всегда анализируйте задачу глубже и используйте несколько метрик (Precision, Recall, F1) для получения полной картины о качестве модели.