Руководство для новичков о том, как рассчитать точность, отзыв и F1-оценку для задачи классификации нескольких классов.

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

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

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

Как видите, в задаче двоичной классификации нужно классифицировать только два класса, предпочтительно положительный и отрицательный. Теперь давайте посмотрим на показатели Матрицы неточностей.

Истинно положительный (TP): Это относится к количеству прогнозов, при которых классификатор правильно предсказывает положительный класс как положительный.

Истинно отрицательный (TN): Это относится к количеству прогнозов, в которых классификатор правильно предсказывает отрицательный класс как отрицательный.

Ложноположительный (FP): Это относится к количеству прогнозов, в которых классификатор неверно предсказывает отрицательный класс как положительный.

Ложноотрицательный (FN): Это относится к количеству прогнозов, в которых классификатор неверно предсказывает положительный класс как отрицательный.

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

Точность: показывает общую точность модели, то есть долю от общего числа выборок, которые были правильно классифицированы классификатором. Для расчета точности используйте следующую формулу: (TP + TN) / (TP + TN + FP + FN).

Уровень ошибочной классификации. Он показывает, какая часть прогнозов была неверной. Это также известно как ошибка классификации. Вы можете рассчитать его, используя (FP + FN) / (TP + TN + FP + FN) или (1-точность). .

Точность. Он сообщает вам, какая доля прогнозов в качестве положительного класса была на самом деле положительной. Для расчета точности используйте следующую формулу: TP / (TP + FP).

Напомнить: он сообщает вам, какая доля всех положительных образцов была правильно определена классификатором как положительные. Он также известен как истинно положительный коэффициент (TPR), чувствительность, вероятность обнаружения. Чтобы рассчитать отзыв, используйте следующую формулу: TP / (TP + FN).

Специфичность. Он сообщает вам, какая доля всех отрицательных образцов правильно предсказана классификатором как отрицательная. Он также известен как True Negative Rate (TNR). Для расчета специфичности используйте следующую формулу: TN / (TN + FP).

F1-оценка: он сочетает в себе точность и запоминаемость в одном измерении. Математически это гармоническое среднее значение точности и запоминания. Его можно рассчитать следующим образом:

Теперь, в идеальном мире, нам нужна модель с точностью 1 и отзывом 1. Это означает, что F1-оценка равна 1, то есть 100% точность, которая часто не соответствует модели машинного обучения. . Итак, что мы должны попробовать, так это получить более высокую точность с более высоким значением отзыва. Хорошо, теперь, когда мы знаем о показателях эффективности матрицы путаницы, давайте посмотрим, как мы можем использовать это в модели машинного обучения с несколькими классами.

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

Для простоты давайте рассмотрим нашу задачу классификации нескольких классов как задачу классификации трех классов. Скажем, у нас есть набор данных с тремя метками класса, а именно Apple, Orange и Манго. Ниже приводится возможная матрица путаницы для этих классов.

В отличие от бинарной классификации здесь нет положительных или отрицательных классов. Сначала может быть немного сложно найти TP, TN, FP и FN, поскольку нет положительных или отрицательных классов, но на самом деле это довольно просто. Здесь нам нужно найти TP, TN, FP и FN для каждого отдельного класса. Например, если мы возьмем класс Apple, то давайте посмотрим, каковы значения показателей из матрицы неточностей.

  • TP = 7
  • TN = (2+3+2+1) = 8
  • FP = (8+9) = 17
  • FN = (1+3) = 4

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

  • Точность = 7 / (7 + 17) = 0,29
  • Напоминание = 7 / (7 + 4) = 0,64
  • F1-оценка = 0,40

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

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

Микро F1

Это называется микро-усредненным баллом F1. Он рассчитывается с учетом общего TP, общего FP и общего FN модели. Он не рассматривает каждый класс в отдельности, он рассчитывает показатели глобально. Итак, для нашего примера

  • Общий TP = (7 + 2 + 1) = 10
  • Всего FP = (8 + 9) + (1 + 3) + (3 + 2) = 26
  • Итого FN = (1 + 3) + (8 + 2) + (9 + 3) = 26

Следовательно,

  • Точность = 10 / (10 + 26) = 0,28
  • Напоминание = 10 / (10 + 26) = 0,28

Теперь мы можем использовать обычную формулу для оценки F1 и получить оценку Micro F1, используя указанную выше точность и отзыв.

Micro F1 = 0,28

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

Точность = Напоминание = Микро F1 = Точность

Макрос F1

Это макро-средний показатель F1. Он рассчитывает показатели для каждого класса индивидуально, а затем берет невзвешенное среднее значение показателей. Как видно из рисунка «Точность, отзывчивость и F1-оценка для каждого класса»,

  • Оценка Apple в классе F1 = 0,40
  • Оценка F1 класса Orange = 0,22
  • Оценка F1 Class Mango = 0,11

Следовательно,

Макрос F1 = (0,40 + 0,22 + 0,11) / 3 = 0,24

Взвешенный F1

Последний - это средневзвешенный показатель F1. В отличие от макроса F1, он принимает средневзвешенное значение показателей. Веса для каждого класса - это общее количество выборок этого класса. Поскольку у нас было 11 яблок, 12 апельсинов и 13 манго,

Взвешенный F1 = ((0,40 * 11) + (0,22 * 12) + (0,11 * 13)) / (11 + 12 + 13) = 0,24

Наконец, давайте рассмотрим сценарий для вычисления этих показателей с помощью Python Scikit-learn.

Вот результат работы скрипта.

Примечание: Scikit-Learn использует строки как истинный класс, а столбцы - как прогнозируемый класс. Это противоположно нашему рассмотрению для примера Apple, Orange и Mango, но логически схоже. В любом случае вы можете рассматривать истинный и предсказанный класс. Но если вы используете Scikit-Learn, то вам придется играть по их правилам.

Надеюсь, вы нашли то, что искали. Спасибо за прочтение.