Середній показник порівняно з середніми показниками макроконтролю у класичній класифікації


102

Я випробовую класифікаційну класифікацію з 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-заходи специфічними для класифікації чи пошуку тексту, чи вони можуть бути використані для будь-якої проблеми з розпізнаванням чи класифікацією ... Якщо так, де ми можемо отримати значення кожної чи будь-якої іншої
референції

1
Хіба мікро середня точність не збігається з точністю набору даних? Як я розумію, для Micro Середньої точності ви обчислюєте суму всіх справжніх позитивних результатів і ділите її на суму всіх справжніх позитивних плюс плюс суму всіх помилкових позитивних результатів. Таким чином, ви ділите кількість правильно визначених прогнозів на загальну кількість прогнозів. Де що відрізняється від розрахунку точності? Чому нам потрібен новий спеціальний термін точності, який ускладнює речі, а не просто дотримуватися значення точності? Будь ласка, доведіть мене неправильно, щоб я міг спати спокійно.
Ніко Цеттлер

1
@NicoZettler Ви праві. Мікро усереднене точність та мікропосереднє відкликання одночасно дорівнює точності, коли кожна точка даних присвоєна точно одному класу. Що стосується вашого другого запитання, мікро-усереднені показники відрізняються від загальної точності, коли класифікації мають багатозначні позначення (кожній точці даних може бути присвоєно більше однієї мітки) та / або коли деякі класи виключаються у випадку багатокласника. Дивіться scikit-learn.org/stable/modules/… .
Джонсон

Відповіді:


144

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

Щоб проілюструвати чому, візьмемо для прикладу точність Pr=TP(TP+FP)

  • Клас А: 1 ТП і 1 ФП
  • Клас В: 10 ТП і 90 ФП
  • Клас С: 1 ТП і 1 ФП
  • Клас D: 1 ТП і 1 ФП

PrA=PrC=PrD=0.5PrB=0.1

  • Pr=0.5+0.1+0.5+0.54=0.4
  • Pr=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 (більше відповідає точності домінуючого класу В (0,1)).

З обчислювальних причин іноді може бути зручніше обчислювати середні класи класів, а потім їх макро середнє значення. Якщо дисбаланс класів, як відомо, є проблемою, існує декілька способів його вирішення. Перше - повідомити не тільки про середній макрос, а й про його стандартне відхилення (для 3 і більше класів). Інша полягає в обчисленні зваженого макросередовища, в якому кожен внесок класу до середнього зважується за відносною кількістю доступних для нього прикладів. У наведеному вище сценарії ми отримуємо:

Prmacromean=0.25·0.5+0.25·0.1+0.25·0.5+0.25·0.5=0.4 Prmacrostdev=0.173

Prmacroweighted=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 не випливає з рівномірної точності серед класів, але може бути просто простіше обчислити зважене макро середнє значення, що по суті є ще одним способом обчислення мікро середнього .


10
Ця відповідь заслуговує на більшу кількість результатів, оскільки вона допомагає формувати розуміння того, чому мікро та макро поводяться по-різному, а не просто перераховувати формули (а це оригінальний зміст).
steffen

2
Як це пояснює різні значення макросу в початковому запитанні?
shakedzy

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

4
Я не погоджуюся з твердженням, що у випадку незбалансованих наборів даних слід віддати перевагу мікро середньому перед макросом. Насправді, для F балів макрос віддається перевазі мікро, оскільки перший надає однакове значення для кожного класу, тоді як пізніше надає однакове значення для кожного зразка (що означає, чим більше кількість зразків, тим більше сказати, що він має в кінцевому рахунку, таким чином перевагу більшості класів дуже схоже на точність). Джерела: 1. cse.iitk.ac.in/users/purushot/papers/macrof1.pdf 2. clips.uantwerpen.be/~vincent/pdf/microaverage.pdf
shahensha

3
Чи завжди "середньозважений макро середній" дорівнює мікро середньому? У Scikit-Learn визначення "зваженого" дещо інше: "Обчисліть показники для кожної мітки та знайдіть їх середнє значення, зважене за підтримкою (кількість справжніх екземплярів для кожної мітки)." Документи для оцінки F1.
willk

20

Оригінальна публікація - http://rushdishams.blogspot.in/2011/08/micro-and-macro-average-of-precision.html


У Micro-середньому методі ви підсумовуєте індивідуальні справжні позитивні, помилкові позитивні та помилкові негативи системи для різних наборів та застосовуєте їх для отримання статистичних даних.

Хитрі, але мені це було дуже цікаво. Є два методи, за допомогою яких можна отримати таку середню статистику пошуку та класифікації інформації.

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

У методі Micro-Середній ви підсумовуєте індивідуальні справжні позитивні, хибні позитивні та помилкові негативи системи для різних наборів та застосовуєте їх для отримання статистичних даних. Наприклад, для набору даних, системних

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

57.14%=TP1TP1+FP180%=TP1TP1+FN1

а для іншого набору даних - системи

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

Тоді точність (P2) і відкликання (R2) становитиме 68,49 і 84,75

Тепер середня точність та відкликання системи за допомогою методу Micro-Середня

Micro-average of precision=TP1+TP2TP1+TP2+FP1+FP2=12+5012+50+9+23=65.96

Micro-average of recall=TP1+TP2TP1+TP2+FN1+FN2=12+5012+50+3+9=83.78

Мікро середній показник F буде просто гармонійним середнім для цих двох фігур.

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

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

Macro-average precision=P1+P22=57.14+68.492=62.82 Macro-average recall=R1+R22=80+84.752=82.25

Середній макро-F-бал буде просто гармонійним середнім для цих двох фігур.

Придатність Макро середній метод може бути використаний, коли ви хочете знати, як система працює в цілому по набору даних. Ви не повинні придумати якесь конкретне рішення з цим середнім показником.

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


21
ви повинні дати кредит цій публікації в блозі ?
xiaohan2012

3
Так @ xiaohan2012, він просто скопіював відповідь.
Мануель Г

Це була моя перша відповідь на переповнення стека, я не був дуже впевнений, як це зробити. Чи можете ви запропонувати змінити Я прийму це. Спасибі
Рахул Редді Вєміредді

Можливо, варто зауважити, що оцінка F1 тут не обов'язково така ж, як макро усереднена оцінка F1, яка зазвичай використовується (як реалізована в scikit або описана в цій роботі ). Зазвичай оцінка F1 обчислюється для кожного класу / набору окремо, а потім середнє значення обчислюється з різних балів F1 (тут це робиться в зворотному порядку: спочатку обчислюється макро усереднена точність / виклик, а потім F1-оцінка ).
Міланія

11

У багатокласовій установці мікроссередня точність та відкликання завжди однакові.

P=cTPccTPc+cFPcR=cTPccTPc+cFNc

cFPc=cFNc

Отже, P = R. Іншими словами, кожне помилкове передбачення буде хибним позитивом для класу, і кожен окремий негатив буде хибним негативом для класу. Якщо ви розглядаєте випадок бінарної класифікації як класифікацію за двома класами та обчислюєте мікросередню точність і нагадайте, що вони будуть однаковими.

Відповідь, яку дає Рахул, полягає у випадку усереднення двійкової точності та відкликання з кількох наборів даних. У цьому випадку точність та відкликання мікро усереднені відрізняються.


2

Ось так і має бути. У мене був такий самий результат для мого дослідження. Спочатку здавалося дивним. Але точність та відкликання повинні бути однаковими при мікро-усередненні результату багатокласного однокласного класифікатора. Це тому, що якщо ви вважаєте помилкову класифікацію c1 = c2 (де c1 і c2 - два різні класи), помилкова класифікація є хибнопозитивною (fp) щодо c2 та хибнонегативною (fn) стосовно c1. Якщо підсумовувати fn і fp для всіх класів, ви отримуєте однакове число, оскільки ви рахуєте кожну неправильну класифікацію як fp відносно одного класу та fn відносно іншого класу.


0

Я думаю, що причина, чому макро середнє значення нижче середнього середнього, добре пояснюється відповіддю pythiest (домінуючий клас має кращі прогнози і тому мікро середнє зростання збільшується).

Але той факт, що середнє значення мікрорівень дорівнює оцінці точності, відкликання та F1, пояснюється тим, що мікро усереднення цих показників призводить до загальної точності (оскільки мікро середня оцінка всіх класів є позитивною). Зауважте, що якщо точність та відкликання рівні, то оцінка F1 дорівнює точності / відклику.

Що стосується питання, чи "середньозважений макро середній" завжди буде дорівнює "мікро середньому"? Я робив кілька експериментів з різними ні. класів та різного класового дисбалансу, і виявляється, що це не обов'язково правда.

Ці твердження зроблені з припущенням, що ми розглядаємо всі класи одного набору даних (на відміну від відповіді Рахула Редді Вемередді)


0

перевага використання оцінки макроса F1 полягає в тому, що він надає однакову вагу для всіх точок даних, наприклад: давайте подумаємо про це, як мікрофільтр F1 приймає суму всіх викликів та присвоєння різних міток незалежно, тому коли у нас є дисбаланс класу як T1 = 90%, T2 = 80%, T3 = 5, тоді F1 Micro дає однакову вагу всьому класу і на нього не впливають відхилення в розподілі журналу класів, втрата журналу - це покарання невеликих відхилень у класі

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.