www.machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Мультиклассические метрики - просто, часть II: оценка F1

Дата публикации Jul 3, 2019

ВЧасть IизМультиклассические метрики стали прощеЯ объяснил точность и вспомнить, и как рассчитать их длямульти-классклассификатор. В этом посте я объясню еще один популярныйF1-оценка,точнее F1-счетsтак как есть как минимум 3 варианта,Я объясню, почему используются F1-баллы, и как их вычислять в мультиклассе.

Но сначалаБОЛЬШОЙ ЖИР ПРЕДУПРЕЖДЕНИЕ:F1-баллы широко используются в качестве метрики, но часто являются неправильным способом сравнения классификаторов. Вы будете часто замечать их в научных статьях, где исследователи используют более высокий балл F1 в качестве «доказательства», что их модель лучше, чем модель с более низким баллом. Однако, более высокая оценка F1 не обязательно означает лучший классификатор. Используйте с осторожностью, и возьмите баллы F1 с зерном соли! Подробнее об этом позже.

Как вЧасть IЯ начну с простой настройки двоичной классификации. Просто напоминание: вот матрица путаницы, созданная с использованием нашего двоичного классификатора для фотографий собак. Оценки точности и отзыва, которые мы рассчитывали в предыдущей части, составляют 83,3% и 71,4% соответственно.

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

Теперь представьте, что у вас есть два классификатора -классификатор Аа такжеклассификатор B- каждый со своей точностью и отзывом. У одного лучше отзыв, у другого - лучшая точность. Мы хотели бы сказать кое-что об их относительной эффективности. Другими словами, мы хотели бы обобщить производительность моделей в одну метрику. Вот где F1-счет используется. Это способ объединить точность и вспомнить в одно число. F1-счет рассчитывается с использованиемозначать(«Средний»), но не обычныйсреднее арифметическое, Он используетсреднее гармоническое, который задается этой простой формулой:

F1-счет = 2×(точность×вспомнить) / (точность + отзыв)

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

F1-балл = 2 × (83,3% × 71,4%) / (83,3% + 71,4%) = 76,9%

Подобно среднему арифметическому, показатель F1 всегда будет где-то между точностью и средним. Но он ведет себя по-другому: счет F1 дает больший вес меньшим числам. Например, когда точность равна 100%, а повторный вызов - 0%, показатель F1 будет равен 0%, а не 50%. Или, например, сказать, чтоКлассификатор Аимеет точность = отзыв = 80%, иКлассификатор Бимеет точность = 60%, отзыв = 100%. Арифметически среднее значение точности и отзыва одинаково для обеих моделей. Но когда мы используем формулу среднего гармонического F1, оценка дляКлассификатор Абудет 80%, а дляКлассификатор Бэто будет только 75%. Низкая точность модели B снизила ее показатель F1.


Теперь, когда мы знаем, как вычислить F1-оценку для двоичного классификатора, давайте вернемся к нашему мультиклассовому примеру из первой части. Краткое напоминание: у нас есть 3 класса (Cat, Fish, Hen) и соответствующая матрица путаницы для нашего классификатора. :

Теперь мы хотим вычислить счет Ф1. Как мы это делаем?

Помните, что оценка F1 - это функция точности и отзыва. И вЧасть Iмы уже научились вычислять точность каждого класса и вспоминать. Вот краткое изложение точности и отзыва для наших трех классов:

С помощью приведенной выше формулы мы можем теперь вычислитьв классеF1-оценка. Например, оценка F1 для Cat:

F1-балл (Cat) = 2 × (30,8% × 66,7%) / (30,8% + 66,7%) = 42,1%

И аналогично для Рыбы и Курицы. Теперь у нас есть полные оценки класса F1:


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

Макро-F1 = (42,1% + 30,8% + 66,7%) / 3 = 46,5%

Аналогичным образом мы также можем вычислитьмакро-усредненная точностьиМакро усредненный отзыв:

Макро-точность = (31% + 67% + 67%) / 3 = 54,7%

Макро-отзыв = (67% + 20% + 67%) / 3 = 51,1%

(20 августа 2019 г. Я только что узнал, что существует более одной метрики макро-F1! Описанный выше макрос-F1 является наиболее часто используемым, но см. Мой постСказка о двух макро-F1)


При усреднении макро-F1 мы давали равные веса каждому классу. Нам не нужно этого делать: всредневзвешенная оценка F1, илиВзвешенный-F1мы взвешиваем балл F1 каждого класса по количеству образцов из этого класса. В нашем случае у нас всего 25 образцов: 6 кошек, 10 рыб и 9 кур. Таким образом, взвешенная оценка F1 рассчитывается следующим образом:

Взвешенная-F1 = (6×42,1% + 10×30,8% + 9×66 7%) / 25 = 46,4%

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

Взвешенные точности = (6×30,8% + 10×66,7% + 9×66,7%) / 25 = 58,1%

Взвешенный отзыв = (6×66,7% + 10×20,0% + 9×66,7%) / 25 = 48,0%


Последний вариантмикро-усредненная оценка F1, илимикро-F1, Чтобы вычислить микро-F1, мы сначала вычисляем микро-усредненноеточностьи микро-усредненныйотзывпо всем образцам, а затем объединить два. Как мы «микро-средний»? Мы просто смотрим на все образцы вместе. Помните, что точность - это доля истинных позитивов от прогнозируемых позитивов (TP / (TP + FP)). В случае мультикласса мы считаем все правильно спрогнозированные выборки истинно положительными. Давайте снова посмотрим на нашу матрицу путаницы:

Было 4 + 2 + 6 образцов, которые были правильно предсказаны (зеленые клетки по диагонали), в общей сложности TP = 12. Теперь нам нужно вычислить количество ложных срабатываний. Поскольку мы смотрим на все классы вместе, каждая ошибка предсказания является ложным положительным значением для класса, который был предсказан. Например, если образец Cat был предсказан как рыба, этот образец является ложноположительным для рыбы. Таким образом, общее количество ложных срабатываний - это общее количество ошибок предсказания, которое мы можем найти, суммируя все недиагональные ячейки (то есть розовые ячейки). В нашем случае это FP = 6 + 3 + 1 + 0 + 1 + 2 = 13. Таким образом, наша точность составляет 12 / (12 + 13) = 48,0%.

Напомним, что это доля истинных позитивов от фактических позитивов (TP / (TP + FN)). ТП как и прежде: 4 + 2 + 6 = 12. Как мы вычисляем количество ложных негативов? Если взять наш предыдущий пример, если образец Cat был предсказан как рыба, этот образец является ложным отрицанием для Cat. В более широком смысле, каждая ошибка предсказания (X неправильно классифицируется как Y) является ложным положительным значением для Y и ложным отрицательным значением для X. Таким образом, общее количество ложных отрицательных значений снова является общим количеством ошибок предсказания (то есть розовых ячеек) и поэтому отзыв такой же, как точность: 48,0%.

Поскольку точность = отзыв в случае микро-усреднения, они также равны их гармоническому среднему значению. Другими словами, в случае микро-F1:

микро-F1знак равномикро-точностьзнак равномикро-отзыв

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

микро-F1знак равномикро-точностьзнак равномикроотзыв = точность


Ранее я упоминал, что баллы F1 следует использовать с осторожностью. Зачем? Хотя они действительно удобны для быстрого сравнения на высоком уровне, их главный недостаток заключается в том, что они придают одинаковый вес точности и отзыву. Как выдающийся статистик Дэвид Хэндобъяснил«Относительная важность, придаваемая точности и отзыву, должна быть аспектом проблемы». Классификация больного как здорового человека отличается от классификации здорового человека как больного, и это должно отражаться в том, как веса и затраты используются для выбора лучшего классификатора для конкретной проблемы, которую вы пытаетесь решить. Это верно для двоичных классификаторов, и проблема усугубляется при вычислении мультиклассовых баллов F1, таких как макро-, взвешенные или микро-F1 баллы. В случае нескольких классов разные ошибки прогнозирования имеют различное значение. Предсказание X как Y, вероятно, будет иметь другую стоимость, чем предсказание Z как W, и так далее. Стандартные оценки F1 не учитывают знания предметной области.


Наконец, давайте еще раз посмотрим на наш скрипт и вывод sk-learn в Python.

Здесь снова вывод скрипта. Две нижние строки показываютмакро-усредненнойа такжевзвешенный усредненныйТочность, отзыв и F1-оценка. Точность (48,0%) также рассчитывается, что равно баллу микро-F1.

На этом завершается краткое введение из двух частей в метрики нескольких классов. Я надеюсь, что вы нашли эти посты полезными.

Оригинальная статья

Footer decor

© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map