Матрица ошибок (Confusion Matrix)
Матрица ошибок (Confusion Matrix) для оценки качества классификационных моделей
Матрица ошибок (Confusion Matrix) - это таблица, которая используется для визуализации производительности классификационной модели на тестовом наборе данных. Она показывает количество примеров, правильно и неправильно классифицированных моделью для каждого класса. Матрица ошибок - одна из ключевых метрик для оценки качества обучения классифицирующих моделей, особенно в задачах с несбалансированными классами.
Структура матрицы ошибок
Матрица ошибок представляет собой таблицу размерности NxN, где N - количество классов в задаче классификации. Строки матрицы соответствуют истинным классам, а столбцы - предсказанным классам. Элементы матрицы содержат количество примеров, отнесенных моделью к каждой комбинации истинного и предсказанного классов.
Для бинарной классификации (когда есть только два класса, например, "положительный" и "отрицательный") матрица ошибок имеет следующую структуру:
Где:
TP (True Positives) - количество положительных примеров, классифицированных как положительные
TN (True Negatives) - количество отрицательных примеров, классифицированных как отрицательные
FP (False Positives) - количество отрицательных примеров, ошибочно классифицированных как положительные
FN (False Negatives) - количество положительных примеров, ошибочно классифицированных как отрицательные
Пример матрицы ошибок
Рассмотрим задачу бинарной классификации на выявление спама в электронных письмах. Предположим, у нас есть тестовый набор из 100 писем, из которых 80 не являются спамом, а 20 - спам. Модель классифицировала эти письма следующим образом:
В этой матрице:
75 писем правильно классифицированы как не спам (TN)
15 писем спама правильно классифицированы как спам (TP)
5 писем, не являющихся спамом, ошибочно классифицированы как спам (FP)
5 писем спама ошибочно классифицированы как не спам (FN)
Использование матрицы ошибок
Анализ матрицы ошибок позволяет получить ценную информацию о производительности классификационной модели:
Главная диагональ показывает количество примеров, классифицированных правильно.
Остальные элементы представляют ошибки классификации для каждой комбинации истинного и предсказанного классов.
Сумма элементов в каждой строке (или столбце) дает общее количество примеров данного истинного (или предсказанного) класса.
На основе матрицы ошибок можно рассчитать другие важные метрики производительности классификатора, такие как precision, recall и F1-мера для каждого класса.
Матрица ошибок является важным инструментом для понимания систематических ошибок модели и помогает найти способы улучшить ее производительность, особенно в случае несбалансированных классов или высокой стоимости ошибок определенного типа.
Вот пример кода на Python для построения и анализа матрицы ошибок классификационной модели:
Выход:
И отобразится график матрицы ошибок:
Разберем этот пример:
Мы импортируем функцию
confusion_matrix
из модуляsklearn.metrics
для построения матрицы ошибок, а такжеConfusionMatrixDisplay
для визуализации.Создаем списки
true_labels
иpred_labels
с истинными и предсказанными метками классов соответственно.Вызываем функцию
confusion_matrix
, передавая туда истинные меткиtrue_labels
и предсказанные меткиpred_labels
. Результат сохраняется в переменнуюcm
.Выводим полученную матрицу ошибок
cm
.Создаем объект
ConfusionMatrixDisplay
с матрицей ошибокcm
и метками классов['Не спам', 'Спам']
.Вызываем метод
plot
для визуализации матрицы ошибок с цветовой картой'Blues'
.Вызываем
plt.show()
для отображения графика.
В этом примере мы видим, что из 10 примеров:
5 примеров "Не спам" классифицированы правильно (TN)
2 примера "Не спам" ошибочно классифицированы как "Спам" (FP)
1 пример "Спам" ошибочно классифицирован как "Не спам" (FN)
2 примера "Спам" классифицированы правильно (TP)
Библиотека scikit-learn предоставляет удобные функции для построения и визуализации матрицы ошибок, что позволяет наглядно оценить производительность классификационной модели и выявить проблемные области.
Last updated