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 →

