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

Матрица ошибок

Матрица ошибок (англ. confusion matrix, также матрица несоответствий, матрица классификации) — это таблица, используемая в задачах машинного обучения и статистической классификации для оценки качества работы алгоритма. Она позволяет визуализировать и детализировать результаты предсказаний модели, сопоставляя фактические (истинные) метки классов с предсказанными. Матрица ошибок служит основой для вычисления большинства метрик качества классификации, таких как точность (accuracy), полнота (recall), точность (precision) и F-мера.

Структура матрицы ошибок

Матрица ошибок представляет собой квадратную таблицу размером N×N, где N — количество классов. Строки таблицы соответствуют истинным (фактическим) меткам классов, а столбцы — предсказанным моделью. Для бинарной классификации (два класса: положительный и отрицательный) матрица имеет размер 2×2 и содержит четыре ключевых элемента:

  • True Positive (TP) — истинно положительные: количество объектов, которые модель правильно отнесла к положительному классу.
  • True Negative (TN) — истинно отрицательные: количество объектов, которые модель правильно отнесла к отрицательному классу.
  • False Positive (FP) — ложно положительные (ошибка I рода): количество объектов, которые модель ошибочно отнесла к положительному классу, хотя они принадлежат отрицательному.
  • False Negative (FN) — ложно отрицательные (ошибка II рода): количество объектов, которые модель ошибочно отнесла к отрицательному классу, хотя они принадлежат положительному.

В многоклассовой классификации матрица ошибок обобщается: на пересечении i-й строки и j-го столбца указывается количество объектов i-го класса, которые модель предсказала как j-й класс. Диагональные элементы соответствуют правильным предсказаниям, а недиагональные — ошибкам.

Основные метрики, вычисляемые на основе матрицы ошибок

Матрица ошибок является источником данных для расчёта метрик, каждая из которых отражает определённый аспект качества модели.

Точность (Accuracy)

Точность — доля правильных предсказаний среди всех объектов. Вычисляется по формуле:

\[ Accuracy = \frac{TP + TN}{TP + TN + FP + FN} \]

Метрика проста для понимания, но может быть обманчива при несбалансированных классах (например, когда 95% объектов относятся к одному классу, модель может показывать высокую точность, просто предсказывая этот класс всегда).

Точность (Precision)

Точность (также положительная прогностическая ценность) — доля истинно положительных объектов среди всех объектов, которые модель отнесла к положительному классу:

\[ Precision = \frac{TP}{TP + FP} \]

Высокая точность означает, что модель редко ошибается, предсказывая положительный класс. Метрика важна в задачах, где ложные срабатывания (FP) дороги (например, в спам-фильтрации — нежелательно помечать важное письмо как спам).

Полнота (Recall)

Полнота (также чувствительность, истинно положительная доля) — доля истинно положительных объектов, которые модель правильно обнаружила среди всех действительно положительных объектов:

\[ Recall = \frac{TP}{TP + FN} \]

Высокая полнота означает, что модель пропускает мало положительных объектов. Метрика критична в задачах, где важно не упустить положительный случай (например, в медицинской диагностике — пропуск болезни может быть опасен).

F-мера (F1-score)

F-мера — гармоническое среднее точности и полноты. Позволяет оценить баланс между ними:

\[ F1 = 2 \cdot \frac{Precision \cdot Recall}{Precision + Recall} \]

F-мера принимает значения от 0 до 1, где 1 — идеальное совпадение. Она полезна, когда нужно одновременно учитывать и точность, и полноту, особенно при несбалансированных классах.

Специфичность (Specificity)

Специфичность (истинно отрицательная доля) — доля истинно отрицательных объектов, которые модель правильно отнесла к отрицательному классу:

\[ Specificity = \frac{TN}{TN + FP} \]

Метрика часто используется в медицине для оценки способности теста не давать ложноположительных результатов.

Пример использования

Рассмотрим задачу бинарной классификации: модель предсказывает, является ли электронное письмо спамом (положительный класс) или не спамом (отрицательный класс). Пусть после тестирования на 100 письмах получены следующие результаты:

  • TP = 30 (правильно обнаруженные спам-письма)
  • TN = 50 (правильно обнаруженные не спам-письма)
  • FP = 10 (не спам-письма, ошибочно помеченные как спам)
  • FN = 10 (спам-письма, пропущенные моделью)

Тогда:

  • Accuracy = (30 + 50) / 100 = 0,80 (80%)
  • Precision = 30 / (30 + 10) = 0,75 (75%)
  • Recall = 30 / (30 + 10) = 0,75 (75%)
  • F1 = 2 (0,75 0,75) / (0,75 + 0,75) = 0,75

Применение в многоклассовой классификации

В многоклассовой классификации матрица ошибок позволяет анализировать ошибки между конкретными парами классов. Например, в задаче распознавания рукописных цифр (10 классов) матрица ошибок размером 10×10 показывает, какие цифры модель чаще всего путает между собой (например, 8 и 3). Для каждой метрики (precision, recall, F1) можно вычислить среднее значение по всем классам (макро-усреднение) или взвешенное среднее с учётом количества объектов в каждом классе.

Ограничения и критика

Матрица ошибок является мощным инструментом, но имеет ограничения:

  • Нечувствительность к несбалансированным данным: при сильном дисбалансе классов метрики вроде accuracy могут вводить в заблуждение. Рекомендуется дополнительно использовать precision, recall и F1.
  • Зависимость от порога классификации: значения TP, FP, TN, FN зависят от выбранного порога вероятности, при котором объект относится к положительному классу. Изменение порога может кардинально изменить матрицу ошибок.
  • Не учитывает стоимость ошибок: разные типы ошибок (FP и FN) могут иметь разную цену, но матрица ошибок не отражает этого. Для учёта стоимости используется взвешенная метрика или анализ затрат.
  • Трудности интерпретации при большом числе классов: при N > 10 матрица ошибок становится громоздкой, и визуальный анализ может быть затруднён. В таких случаях применяют нормализованные матрицы ошибок (доли от общего числа объектов в классе) или агрегированные метрики.

Визуализация

Матрица ошибок часто представляется в виде тепловой карты (heatmap) с цветовой шкалой, где интенсивность цвета соответствует количеству объектов. Это позволяет быстро выявить наиболее частые ошибки модели. В библиотеках машинного обучения (например, scikit-learn в Python) есть встроенные функции для построения матрицы ошибок и её визуализации.

Интересные факты

  • Термин «матрица ошибок» впервые был предложен в 1960-х годах в контексте теории распознавания образов.
  • В задачах с двумя классами матрица ошибок тесно связана с ROC-кривой и AUC-ROC, которые оценивают качество модели при всех возможных порогах классификации.
  • В некоторых областях, например в медицине, вместо терминов TP, TN, FP, FN используются названия: истинно положительный, истинно отрицательный, ложноположительный и ложноотрицательный результаты.

Источники

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

На главную BFOmetr →