Матрица путаницы
Введение
Матрица ошибок (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.