Матрица путаницы

Введение

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

Матрица ошибок является отправной точкой для вычисления всех ключевых метрик классификатора: точности (accuracy), прецизионности (precision), полноты (recall), F1-меры и специфичности. Понимание матрицы ошибок критично для правильной интерпретации модели, особенно при несбалансированных классах.

История и контекст

Матрица ошибок как инструмент оценки восходит к работам в области распознавания образов и статистики 1950–1960-х годов. В медицинской диагностике аналогичные понятия (чувствительность/sensitivity и специфичность/specificity) применяются с тех же времён. С расцветом машинного обучения в 1990-х и 2000-х годах confusion matrix стала стандартным инструментом в scikit-learn, TensorFlow, MATLAB и других платформах. Сегодня её визуализация является обязательным элементом отчёта о качестве любой классификационной модели.

Как это работает

Для бинарной классификации матрица содержит четыре ячейки:

  • True Positive (TP): модель предсказала положительный класс, и он действительно положительный.
  • True Negative (TN): модель предсказала отрицательный класс, и он действительно отрицательный.
  • False Positive (FP, ошибка I рода): модель предсказала положительный, но фактически отрицательный («ложная тревога»).
  • False Negative (FN, ошибка II рода): модель предсказала отрицательный, но фактически положительный («пропущенный случай»).

На основе этих четырёх значений вычисляются метрики:

  • Accuracy = (TP + TN) / (TP + TN + FP + FN) – доля правильных предсказаний.
  • Precision = TP / (TP + FP) – доля истинно положительных среди всех предсказанных положительных.
  • Recall (Sensitivity) = TP / (TP + FN) – доля обнаруженных положительных среди всех реальных положительных.
  • F1-score = 2 × (Precision × Recall) / (Precision + Recall) – гармоническое среднее precision и recall.

Где применяется

  • Медицинская диагностика: оценка классификатора болезней. FN критичны: пропущенный рак опаснее ложной тревоги → оптимизируют recall.
  • Антифрод: обнаружение мошеннических транзакций. FP означает блокировку легального платежа → баланс между recall и precision.
  • Спам-фильтрация: FP (легальное письмо в спам) критично для пользователя → высокая precision.
  • Компьютерное зрение: распознавание объектов, дефектов на производстве, лиц на изображениях.
  • NLP-классификация: тональность текста, категоризация обращений в службу поддержки, спам-детекция.
  • Кредитный скоринг: оценка вероятности дефолта, балансировка между отказом хорошим заёмщикам и одобрением плохих.

Преимущества и ограничения

Преимущества: детальная картина ошибок по классам, основа для выбора порога классификации (threshold), незаменима при несбалансированных классах (где accuracy вводит в заблуждение).

Ограничения: при большом числе классов (N>10) матрица становится трудночитаемой, не учитывает вероятности предсказаний (для этого нужны ROC AUC, PR AUC), требует разметки тестовых данных.

Связь с другими понятиями

Confusion matrix является базой для построения ROC-кривой и Precision-Recall кривой. Тесно связана с порогом классификации (threshold) – изменение порога напрямую влияет на соотношение TP/FP/FN/TN. Используется совместно с метриками AUC-ROC для оценки классификаторов. В задачах многоклассовой классификации применяются macro/micro/weighted усреднения метрик. Является стандартным выводом функции sklearn.metrics.confusion_matrix в Python scikit-learn.