Микро-средняя и Макро-средняя производительность в настройке классификации мультикласса

103

Я пробую настройку мультиклассовой классификации с 3 классами. Распределение классов искажено, большая часть данных попадает в 1 из 3 классов. (метки классов 1,2,3, при этом 67,28% данных попадают в метку класса 1, 11,99% данных в классе 2 и остаются в классе 3)

Я обучаю мультиклассовый классификатор на этом наборе данных, и я получаю следующую производительность:

                    Precision           Recall           F1-Score
Micro Average       0.731               0.731            0.731
Macro Average       0.679               0.529            0.565

Я не уверен, почему все Micro Avg. производительность одинакова, а также почему средние показатели макросъемки так низки.

ШАШАНК ГУПТА
источник
1
Вы не можете посмотреть на индивидуальные истинные положительные стороны и т.д. до усреднения? кроме того, макро-средние значения, как правило, ниже, чем микро-средние
oW_
Являются ли микро- и макро-F-меры специфичными для классификации или поиска текста, или они могут использоваться для любой проблемы распознавания или классификации ..... Если да, то где мы можем получить значение каждого или любого другого
признака
2
Разве Микро-Средняя Точность не совпадает с Точностью набора данных? Из того, что я понимаю, для Micro Average Precision вы вычисляете сумму всех истинных положительных результатов и делите ее на сумму всех истинных положительных результатов плюс сумму всех ложных положительных результатов. Таким образом, вы делите количество правильно определенных прогнозов на общее количество прогнозов. Где это отличается от точности расчета? Зачем нам нужен новый специальный термин точности, который усложняет задачу, а не просто придерживается значения точности? Пожалуйста, докажите, что я не прав, чтобы я мог спать спокойно.
Нико Цеттлер
2
@NicoZettler Вы правы. Микро-усредненная точность и микро-усредненный отзыв равны точности, когда каждой точке данных назначается ровно один класс. Что касается вашего второго вопроса, микро-усредненные показатели отличаются от общей точности, когда классификации имеют несколько меток (каждой точке данных может быть назначено более одной метки) и / или когда некоторые классы исключаются в случае нескольких классов. См. Scikit-learn.org/stable/modules/… .
Джонсон

Ответы:

146

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

Чтобы проиллюстрировать почему, возьмем, например, точность . Давайте представим, что у вас естьсистема классификации нескольких классовOne-vs-All(в каждом примере только один правильный класс) с четырьмя классами и следующими числами при тестировании:прзнак равноTп(Tп+Fп)

  • Класс A: 1 TP и 1 FP
  • Класс B: 10 TP и 90 FP
  • Класс C: 1 TP и 1 FP
  • Класс D: 1 TP и 1 FP

Вы можете легко видеть, что , тогда как P r B = 0,1 .прAзнак равнопрСзнак равнопрDзнак равно0,5прВзнак равно0,1

  • Затем будет вычислено среднее среднее значение: прзнак равно0,5+0,1+0,5+0,54знак равно0,4
  • Микро-среднее рассчитает: прзнак равно1+10+1+12+100+2+2знак равно0,123

Это совершенно разные значения точности. Интуитивно понятно, что в макро-среднем «хорошая» точность (0,5) классов A, C и D способствует поддержанию «достойной» общей точности (0,4). Хотя это технически верно (для разных классов средняя точность равна 0,4), это немного вводит в заблуждение, поскольку большое количество примеров не классифицировано должным образом. Эти примеры в основном соответствуют классу B, поэтому они дают только 1/4 от среднего значения, несмотря на то, что они составляют 94,3% ваших тестовых данных. Микро-среднее адекватно улавливает этот дисбаланс класса и снизит общее среднее значение точности до 0,123 (что больше соответствует точности доминирующего класса B (0,1)).

По вычислительным причинам иногда может быть удобнее вычислять средние значения классов, а затем их усреднять на макроуровне. Если дисбаланс классов, как известно, является проблемой, есть несколько способов обойти это. Одним из них является отчет не только о среднем среднем, но и о его стандартном отклонении (для 3 или более классов). Другой способ состоит в том, чтобы вычислить взвешенное макро-среднее значение, при котором вклад каждого класса в среднее значение взвешивается по относительному числу доступных для него примеров. В приведенном выше сценарии мы получаем:

прмaсро-меaNзнак равно0,25·0,5+0,25·0,1+0,25·0,5+0,25·0,5знак равно0,4 прмaсро-sTdеvзнак равно0,173

прмaсро-весеяграммчасTеdзнак равно0,0189·0,5+0,943·0,1+0,0189·0,5+0,0189·0,5знак равно0,009+0,094+0,009+0,009знак равно0,123

Большое стандартное отклонение (0,173) уже говорит нам о том, что среднее значение 0,4 не вытекает из одинаковой точности среди классов, но может быть просто легче вычислить взвешенное макро-среднее значение, которое по сути является еще одним способом вычисления микро-среднего значения. ,

pythiest
источник
10
Этот ответ заслуживает большего количества голосов, потому что помогает понять, почему микро и макро ведут себя по-разному, а не просто перечисляют формулы (и это оригинальное содержание).
Штеффен
2
Как это объясняет различные значения макросов в исходном вопросе?
Shakedzy
3
Если вы перевернете сценарий, описанный в ответе, с большим классом, работающим лучше, чем с маленьким, вы ожидаете, что микро-среднее будет выше, чем макро-среднее (это поведение, о котором сообщается в вопросе). То, что значения макросов различны, более или менее следует ожидать, так как вы измеряете разные вещи (точность, вспомните ...). Почему микро средние все одинаковы, я считаю, это вопрос.
самое пижонное
4
Я не согласен с утверждением о том, что в случае несбалансированных наборов данных предпочтение следует отдавать микросредним, а не макросам. На самом деле, для F-баллов макро предпочтительнее, чем микро-, так как первый придает одинаковую важность каждому классу, тогда как последний придает одинаковую важность каждой выборке (что означает, что чем больше количество выборок, тем больше он говорит в итоговой оценке, таким образом, предпочтение большинства классов очень похоже на точность). Источники: 1. cse.iitk.ac.in/users/purushot/papers/macrof1.pdf 2. clips.uantwerpen.be/~vincent/pdf/microaverage.pdf
шахенша,
3
Всегда ли «взвешенное макро-среднее» всегда равно микро-среднему? В Scikit-Learn определение «взвешенного» немного отличается: «Рассчитать метрики для каждого ярлыка и найти их среднее значение, взвешенное по поддержке (количество истинных экземпляров для каждого ярлыка)». Из документов для F1 Score.
willk
20

Оригинальный пост - http://rushdishams.blogspot.in/2011/08/micro-and-macro-average-of-precision.html


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

Сложно, но я нашел это очень интересным. Есть два метода, с помощью которых вы можете получить такую ​​среднюю статистику поиска и классификации информации.

1. Микро-средний метод

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

True positive (TP1)  = 12
False positive (FP1) = 9
False negative (FN1) = 3

57,14%знак равноTп1Tп1+Fп180%знак равноTп1Tп1+FN1

и для другого набора данных, система

True positive (TP2)  = 50
False positive (FP2) = 23
False negative (FN2) = 9

Тогда точность (P2) и отзыв (R2) будут 68,49 и 84,75

Теперь средняя точность и отзыв системы с использованием метода микро-среднего

Микро-среднее точностизнак равноTп1+Tп2Tп1+Tп2+Fп1+Fп2знак равно12+5012+50+9+23знак равно65,96

Микро-среднее отзывазнак равноTп1+Tп2Tп1+Tп2+FN1+FN2знак равно12+5012+50+3+9знак равно83,78

Микро-среднее F-Score будет просто гармоническим средним этих двух цифр.

2. Макро-средний метод

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

Макро-средняя точностьзнак равноп1+п22знак равно57,14+68,492знак равно62,82 Макро-средний отзывзнак равнор1+р22знак равно80+84,752знак равно82,25

Макро-среднее F-Score будет просто гармоническим средним этих двух цифр.

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

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

Рахул Редди Вемиредди
источник
21
Вы должны отдать должное этому сообщению в блоге ?
xiaohan2012
3
Да @ xiaohan2012, он просто повторил ответ.
Мануэль G
Это был мой первый ответ на переполнение стека, я не был уверен, как это сделать. Можете ли вы предложить изменить. Я приму это. Спасибо
Рахул Редди Вемиредди
Возможно, стоит отметить, что оценка F1 здесь не обязательно совпадает с обычно используемой макро-усредненной оценкой F1 (например, реализованной в scikit или описанной в этой статье ). Обычно, оценка F1 рассчитывается для каждого класса / набора отдельно, а затем среднее значение вычисляется на основе различных оценок F1 (здесь это делается противоположным образом: сначала вычисляется макро-усредненная точность / отзыв, а затем оценка F1 ).
Милания
11

В мультиклассовой настройке микро-усредненная точность и отзыв всегда одинаковы.

пзнак равноΣсTпсΣсTпс+ΣсFпсрзнак равноΣсTпсΣсTпс+ΣсFNс

ΣсFпсзнак равноΣсFNс

Следовательно, P = R. Другими словами, каждое Ложное Предсказание будет Ложным Позитивом для класса, и каждый Единственный Негатив будет Ложным Негативом для класса. Если вы рассматриваете случай двоичной классификации как двухклассовую классификацию и вычисляете микроусредненную точность и вспоминаете, что они будут одинаковыми.

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

Давид Маковоз
источник
2

Так и должно быть. У меня был тот же результат для моего исследования. Сначала это казалось странным. Но точность и отзыв должны быть одинаковыми при микроусреднении результата многоклассового однокомпонентного классификатора. Это потому, что если вы рассмотрите ошибочную классификацию c1 = c2 (где c1 и c2 - 2 разных класса), ошибочная классификация будет ложноположительной (fp) по отношению к c2 и ложноотрицательной (fn) по отношению к c1. Если вы суммируете fn и fp для всех классов, вы получаете одно и то же число, потому что вы считаете каждую ошибочную классификацию fp для одного класса и fn для другого класса.

Саган Мудбхари
источник
0

Я думаю, что причина, по которой макро-среднее ниже, чем микро-среднее, хорошо объясняется ответом Пятистого (доминирующий класс имеет лучшие прогнозы и, следовательно, микро-среднее увеличение).

Но тот факт, что микро-среднее значение одинаково для показателей точности, повторного вызова и F1, объясняется тем, что микро-усреднение этих метрик приводит к общей точности (поскольку микро-средние считают все классы положительными). Обратите внимание, что если Точность и Повтор равны, то оценка F1 просто равна точности / отзыву.

Что касается вопроса, всегда ли «взвешенное макро-среднее» будет равно «микро-среднему»? Я провел несколько экспериментов с разными номерами. классов и различного дисбаланса классов, и оказывается, что это не обязательно верно.

Эти утверждения сделаны с предположением, что мы рассматриваем все классы одного и того же набора данных (в отличие от ответа Рахула Редди Вемиредди)

goyuiitv
источник
0

Преимущество использования Macro F1 Score заключается в том, что он придает одинаковый вес всем точкам данных, например: давайте подумаем об этом, так как микро F1 берет сумму всех Recall и Presession разных меток независимо, поэтому, когда у нас есть дисбаланс классов например, T1 = 90%, T2 = 80%, T3 = 5, тогда F1 Micro дает одинаковый вес всем классам и не подвержен отклонениям в распределении журнала классов. Потеря журналов учитывает небольшие отклонения в классе.

Суджит Йена
источник