Открыть сервис

Accuracy (метрика качества классификации)

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

Определение и формула

Accuracy вычисляется как отношение количества правильно классифицированных объектов к общему количеству объектов в наборе данных. В терминах матрицы ошибок (confusion matrix) формула имеет вид:

Accuracy = (TP + TN) / (TP + TN + FP + FN)

Где:

  • TP (true positives) — истинно положительные: объекты, верно отнесённые к положительному классу;
  • TN (true negatives) — истинно отрицательные: объекты, верно отнесённые к отрицательному классу;
  • FP (false positives) — ложноположительные: объекты, ошибочно отнесённые к положительному классу;
  • FN (false negatives) — ложноотрицательные: объекты, ошибочно отнесённые к отрицательному классу.

Значение метрики всегда лежит в диапазоне от 0 до 1 (или от 0% до 100%). Accuracy равная 1 означает идеальную классификацию, 0 — полностью неверную.

Применение

Метрика применяется для оценки качества моделей в задачах бинарной и мультиклассовой классификации. Она используется в таких областях, как:

Accuracy является стандартной метрикой в большинстве библиотек машинного обучения, включая scikit-learn, TensorFlow и PyTorch, и часто используется как базовая для сравнения различных моделей.

Ограничения и проблема несбалансированных классов

Главный недостаток accuracy — её неинформативность при работе с несбалансированными наборами данных. Если один класс составляет, например, 95% выборки, то модель, предсказывающая всегда этот класс, получит accuracy 0,95, хотя фактически не решает задачу классификации.

Классический пример: задача выявления редкого заболевания, встречающегося у 1% пациентов. Модель, которая всем ставит диагноз «здоров», достигает accuracy 0,99, но при этом не обнаруживает ни одного больного. В таких случаях более информативны другие метрики — precision, recall и F1-score.

Уточняющий пример: в задаче детекции спама (2% спама в потоке писем) классификатор, помечающий все письма как обычные, показывает accuracy 0,98, однако полностью бесполезен для фильтрации.

Accuracy как функция потерь

Accuracy не является дифференцируемой функцией (она кусочно-постоянна), поэтому не может напрямую использоваться как функция потерь при обучении моделей градиентными методами. Вместо неё применяются суррогатные функции потерь, например, кросс-энтропия или логистическая потеря, которые приближают accuracy и позволяют обучать модели с помощью обратного распространения ошибки.

Связанные метрики

Accuracy входит в группу метрик, вычисляемых на основе матрицы ошибок. К ним также относятся:

  • Precision (точность) — доля верно предсказанных положительных объектов среди всех, отнесённых к положительному классу;
  • Recall (полнота) — доля верно предсказанных положительных объектов среди всех объектов положительного класса;
  • F1-score — гармоническое среднее precision и recall;
  • Specificity — доля верно предсказанных отрицательных объектов среди всех отрицательных.

Для мультиклассовой классификации accuracy может вычисляться как глобально (по всем объектам), так и усредняться по классам (макро- или микро-усреднение). В задачах регрессии accuracy не применяется — там используются метрики ошибки (MAE, MSE, RMSE).

Особенности интерпретации

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

  • классы в выборке сильно несбалансированы;
  • стоимость ошибок разных типов неодинакова (например, пропуск болезни опаснее ложного диагноза);
  • выборка мала и результат статистически недостоверен.

В таких случаях рекомендуется использовать взвешенные метрики или строить ROC-кривую и вычислять площадь под ней (AUC-ROC).

Вычисление в программных средствах

В библиотеке scikit-learn (Python) accuracy вычисляется функцией accuracy_score из модуля sklearn.metrics. В TensorFlow и Keras метрика доступна как tf.keras.metrics.Accuracy. В статистическом пакете R для этих целей используется функция accuracy из пакета caret или ручное вычисление по таблице сопряжённости.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →