Матрица неточностей - это табличное представление, описывающее эффективность модели классификации на наборе тестовых данных, для которых известны фактические значения.
Она позволяет легко идентифицировать путаницу между классами, которая является если один класс ошибочно помечен как другой класс.

1. Матрица неточностей для двоичной классификации

Двоичная классификация - это задача классификации элементов данного набора на два класса. Предполагая, что метки класса как Class 1 (положительный класс) и Class 0 (отрицательный класс). Матрица неточностей для 2 классов будет иметь размер 2 * 2 (как показано ниже).

  • a = количество баллов, при которых фактический класс = 0 и прогнозируемый класс = 0
  • b = Количество баллов, при которых Фактический класс = 1 и Прогнозируемый класс = 0
  • c = количество баллов, при которых фактический класс = 0 и прогнозируемый класс = 1.
  • d = количество баллов, при которых фактический класс = 1 и прогнозируемый класс = 1
  • a + c = Общее количество отрицательных баллов (класс 0).
  • b + d = Общее количество положительных баллов (класс 1).

Терминологии

  • TN : Фактический класс отрицательный и, по прогнозам, будет «отрицательным». Ярлык прогнозируемого класса правильный, поэтому "Верно отрицательный".
  • TP: Фактический класс положительный и, по прогнозам, будет «положительным». Ярлык прогнозируемого класса правильный, поэтому "Истинно положительный".
  • FN: Фактический класс положительный, но прогнозируется «отрицательный». Ярлык прогнозируемого класса неверен, поэтому "Ложноотрицательный".
  • FP: Фактический класс отрицательный, но прогнозируется как «положительный». Ярлык прогнозируемого класса неправильный, поэтому "Ложно-положительный".

2. Матрица неточностей для мультиклассовой классификации

Мультиклассовая классификация - это проблема классификации экземпляров в один из трех или более классов. Предположим, у нас есть N классов, тогда матрица путаницы будет иметь размер N * N.

Как построить матрицу неточностей для многоклассовой классификации?

Вот пошаговая процедура построения матрицы неточностей для мультиклассовой классификации:

В первом случае шага 2 модель прогнозируемой метки класса A, а фактическая метка класса также A. Таким образом, она становится True Positive для класса A.

Во втором случае шага 2 модель прогнозируемой метки класса как B, но фактическая метка класса - A. Таким образом, она становится ложно-отрицательным значением для класса A.

После заполнения значений таким же образом мы получаем матрицу путаницы для нашей модели.

Показатели эффективности, рассчитанные на основе матрицы неточностей

  1. Истинно положительный результат для каждого класса в многоклассовой классификации:

2. Верно отрицательный в мультиклассовой классификации:

3. Ложноположительный в многоклассовой классификации:

4. Ложноотрицательный в мультиклассовой классификации:

Истинный позитив должен быть высоким, чтобы модель была хорошей. Следовательно, высокие значения элементов главной диагонали и низкие значения элементов внеглавной диагонали говорят о том, что модель хороша.

Точность

Это один из показателей для оценки моделей классификации. Его можно рассчитать как общее количество правильных прогнозов, разделенное на общее количество точек данных. Формально точность имеет следующее определение:

Точность также можно рассчитать с точки зрения плюсов и минусов следующим образом:

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

Отзыв предоставлен:

Точность:
Чтобы получить значение точности, мы делим общее количество правильно классифицированных положительных точек на общее количество предсказанных положительных точек. Высокая точность означает, что точка, помеченная как положительная, действительно положительна (небольшое количество FP).
Точность задается соотношением:

Высокая отзывчивость, низкая точность: это означает, что большинство положительных точек распознаются правильно (низкий FN), но есть много ложных срабатываний.

Низкая запоминаемость, высокая точность: это показывает, что мы упускаем много положительных моментов (высокий FN), но те, которые мы прогнозируем как положительные, действительно положительные (низкий FP).

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

Рассмотрим пример:

Предположим, у нас есть две модели. Матрицы неточностей для моделей:

Точность для модели 1:

Точность для модели 2:

Если мы сравним точность для модели 1 и модели 2. Модель 1 имеет более низкую точность, а модель 2 имеет более высокую точность. Это связано с несбалансированным набором данных. Модель 2, склонная к классу A, дает много правильных прогнозов для класса A, но не дает результатов для других.

Таким образом, сама по себе точность не дает полной картины, когда вы работаете с несбалансированным по классам набором данных, подобным этому, где существует значительное несоответствие между количеством баллов для каждой метки класса. .

Однако, если мы используем оценку F1, тогда:

Точность для модели 1:

Отзыв о модели 1:

F1-SCORE для модели 1:

После расчета получаем:

Мы могли видеть, что Модель 1 лучше подходит для мультиклассовой классификации по заданным несбалансированным данным, а F1-Score является метрикой для количественной оценки ее производительности.

Это были основные термины, относящиеся к матрице путаницы.

Реализация матрицы неточностей

Начнем с кодирования. Рекомендации по внедрению матрицы неточностей:

  1. Импорт библиотек, которые будут использоваться: pandas для создания фрейма данных, seaborn и matplotlib.pyplot для визуализации.
  2. Создание массива для хранения прогнозов тестовых данных. Предполагая, что все прогнозы верны для этого конкретного примера. Каждая строка этого массива представляет фактические метки классов (входные данные для модели), а столбец представляет метки прогнозируемых классов (прогнозы модели).
  3. Создание фрейма данных с использованием библиотеки pandas, содержащей значения массива.
  4. Визуализация матрицы путаницы с помощью тепловой карты () библиотеки seaborn. Это отличный инструмент для визуализации матрицы путаницы, потому что он обеспечивает более темный цвет для ячеек с более низким значением и более яркий цвет для ячейки с более высоким значением матрицы.

Базовая реализация матрицы неточностей без ошибок классификации:

Наблюдение. Основная диагональ имеет более яркие цвета, так как у нее более высокие значения, а все нули окрашены в черный цвет.

Базовая реализация матрицы неточностей с некоторыми неправильными классификациями:

Давайте посмотрим на более реалистичный пример матрицы путаницы. Каждая строка этой матрицы представляет фактические метки классов (входные данные для модели), а столбец представляет метки прогнозируемых классов (прогнозы модели).

Это матрица путаницы с некоторой путаницей (неправильной классификацией). Мы могли видеть, что в этой матрице есть более яркие цвета, кроме главной диагонали, которая символизирует наличие ошибки, допущенной моделью.

Ограничение матрицы путаницы без нормализации. Посмотрев на приведенную выше матрицу, мы не можем обнаружить, что модель хорошо предсказывает, какая метка класса. В классе может быть любое количество точек данных, например, в классе A есть 10 точек данных и 9 правильных прогнозов модели, но в классе B 20 точек данных и 15 правильных прогнозов модели. Таким образом, было 5 точек данных, неправильно классифицированных в классе B, и только 1 точка данных была неправильно классифицирована в классе A. Таким образом, просто посмотрев число, мы не можем подтвердить, что модель подходит для прогнозов какого класса. Чтобы снять это ограничение, мы могли бы использовать Матрицу путаницы с нормализацией.

Матрица неточностей с нормализацией:

Как указано выше, ограничение матрицы неточностей можно снять с помощью нормализации. Матрица неточностей с нормализацией обеспечивает лучшую визуализацию.

Наблюдение: TP для класса A составляет 0,9, а TP для класса B - 0,75. Это ясно показывает, что модель лучше предсказывает класс A, чем класс B.

Этот вид нормализации очень полезен в случае дисбаланса классов, чтобы иметь более наглядную интерпретацию того, какой класс классифицируется неправильно.

Спасибо за чтение 😊