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

Контекст

Предположим, мы являемся алгоритмом классификации, который предсказывает, будет дождь или нет. Для упрощения рассмотрим интервал в 10 дней.
Таблица ниже иллюстрирует реальные данные и наш прогноз.

Точность

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

Таблица выше показывает нам, что у нас есть точность 80%, потому что мы «точно» предсказали результат за 8 из 10 дней. Но так как речь идет о статистике, то нельзя обойти «формальности» (ба дум цс).
Существует общий способ подхода или подсчета правильных и неправильных результатов нашей модели, который называется матрицей путаницы.

Матрица путаницы и как ее понять

Матрица путаницы — это обобщенный способ увидеть результаты нашего алгоритма классификации.

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

После того, как мы выполнили наши прогнозы, мы можем быть только правильными (верными) в отношении результата или неверными (ложными) об этом.

Зная это, мы можем обобщить производительность нашего алгоритма классификации в виде матрицы 2 на 2, сопоставив наши прогнозы с реальными данными, следуя следующим правилам:

  • Если наш алгоритм предсказал пример как ПОЗИТИВНЫЙ и реальный мир также ПОЗИТИВНЫЙ, мы называем это Истинно положительным. .
  • Если наш алгоритм спрогнозировал пример как ПОЗИТИВНЫЙ, а реальный мир оказался ОТРИЦАТЕЛЬНЫМ, мы называем это ложным срабатыванием.
  • Если наш алгоритм предсказал пример как ОТРИЦАТЕЛЬНЫЙ, а реальный мир ПОЗИТИВНЫЙ, мы называем это Ложноотрицательным.
  • Если наш алгоритм предсказал пример как ОТРИЦАТЕЛЬНЫЙ, а реальный мир также ОТРИЦАТЕЛЬНЫЙ, мы называем это Истинно отрицательным.

Совет, чтобы сделать матрицу путаницы менее запутанной, состоит в том, чтобы думать о результатах независимо. Рассмотрим одну из диаграмм ниже, чтобы проиллюстрировать мыслительный процесс:

Возвращаясь к нашему классификатору, мы можем определить матрицу путаницы следующим образом (убедитесь, что вы поняли цифры и почему, прежде чем двигаться дальше):

Назад к точности

При этом мы можем более формально определить нашу метрику точности по формуле ниже:

Итак, для нашего примера у нас есть:
(1+7) / (1+7+0+2) = 8/10 = точность 80%. Это наша общая производительность.

Точность

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

В нашем примере у нас есть:
1 / (1+0) = 1/1 = 100% точность. Другими словами, для всех прогнозов, которые наша модель классифицировала как положительные, она была верной в 100% случаев, очень точной!

«Система с высокой точностью может упустить некоторые хорошие элементы, но то, что она возвращает, будет высокого качества»

Кэсси Козырков о дружбе с машинным обучением на YouTube.

Вкратце: используйте точность в качестве показателя, если вам нужны высококачественные результаты!

Вспомнить

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

В нашем примере у нас есть:
1 / (1+2) = 1/3 = 33,33% полноты. Другими словами, при всем том, что следует считать положительным, наша модель была верна в 33,33% случаев, она не учитывала некоторые вещи.

«Система с высоким отзывом может дать вам много неудач, но она также возвращает большую часть хороших элементов»

Кэсси Козырков о дружбе с машинным обучением на YouTube.

Вкратце: используйте отзыв в качестве показателя, если не хотите что-то упустить!

Бонус: результат F1

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

Вкратце: используйте F1 Score в качестве метрики, если вам нужно сочетание точности и полноты.

Конец

Вот и все, народ! Теперь, когда мы знаем, как измерить наши алгоритмы классификации, мы можем приятно провести время с семьей и друзьями, зная, что в этом году мы проделали (надеюсь) отличную работу!

Веселого Рождества и счастливого Нового года!
Да пребудет с вами код!