Нагадаємо та точність у класифікації


40

Я читаю деякі визначення відкликання та точності, хоча це щоразу в контексті пошуку інформації. Мені було цікаво, чи може хтось пояснити це трохи більше в контексті класифікації та, можливо, проілюструвати деякі приклади. Скажімо, наприклад, у мене є двійковий класифікатор, який дає мені точність 60% і відкликання 95%, це хороший класифікатор?

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

Я б особисто сказав 5 через площу під кривою оператора приймача.

(як ви бачите тут, модель 8 має низьку точність, дуже високий відкликання, але одна з найнижчих AUC_ROC, це робить її хорошою моделлю? чи поганою?)

введіть тут опис зображення


редагувати:

У мене є файл excel з додатковою інформацією: https://www.dropbox.com/s/6hq7ew5qpztwbo8/comparissoninbalance.xlsx

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


6
Чому негативний голос? Це здається цікавим питанням (звичайно, один із кількох людей думав, що можна відповісти).
Гала

Скільки тестових випадків було залучено до обчислення показників ефективності? Крім того, якщо ви порівнюєте декілька класифікаторів в одному наборі даних, ви можете використовувати парний дизайн (у порівнянні з резюме, що обговорює порівняння класифікаторів, є кілька питань та відповідей)
cbeleites підтримує Моніку

У мене 799 зразків (якщо це те, що ви маєте на увазі під тестовим випадком). Кожен раз, коли я розділяю дані на 10 підмножини. 1 підмножина для тестування класифікаторів та решта для навчання класифікаторів (Класифікатори, які порівнюються, навчаються за тими ж даними).
Olivier_s_j

Чи класифікатори виводять бінарне значення, або вони виводять реальне значення, а потім використовують поріг, щоб зробити його двійковим?
галат

Вони виводять двійковий вихід.
Olivier_s_j

Відповіді:


40

Від того, чи дійсно класифікатор є «хорошим», залежить

  1. Що ще доступно для вашої конкретної проблеми. Очевидно, ви хочете, щоб класифікатор був кращим, ніж випадкові чи наївні здогадки (наприклад, класифікуючи все як належить до найпоширенішої категорії), але деякі речі простіше класифікувати, ніж інші.
  2. Вартість різних помилок (помилкова тривога проти помилкових негативів) та базовий розмір. Дуже важливо розрізнити ці два та опрацювати наслідки, оскільки можливо мати класифікатор з дуже високою точністю (правильні класифікації на якомусь тестовому зразку), який на практиці є абсолютно марним (скажімо, ви намагаєтесь виявити рідкісне захворювання чи якесь нечасті пустотливі поведінки і планують розпочати якусь дію після виявлення; велике масштабне тестування щось коштує, а коригувальні дії / лікування, як правило, включають значні ризики / витрати, тому враховуючи, що більшість звернень будуть помилковими, з точки зору вартості / вигоди можливо, краще нічого не робити).

Щоб зрозуміти зв’язок між відкликанням / точністю з одного боку та чутливістю / специфічністю з іншого, корисно повернутися до матриці плутанини:

                      Condition: A             Not A

  Test says “A”       True positive (TP)   |   False positive (FP)
                      ----------------------------------
  Test says “Not A”   False negative (FN)  |    True negative (TN)

Нагадаємо, TP / (TP + FN), тоді як точність - TP / (TP + FP). Це відображає природу проблеми: Під час пошуку інформації ви хочете визначити якомога більше відповідних документів (це нагадування) і уникати необхідності розбирати непотріб (це точність).

Використовуючи ту саму таблицю, традиційними показниками класифікації є (1) чутливість, визначена як TP / (TP + FN), і (2) специфічність, визначена як TN / (FP + TN). Отже, нагадування та чутливість просто синонімічні, але точність та специфічність визначаються по-різному (як відкликання та чутливість, специфічність визначається щодо загальної колонки, тоді як точність стосується загальної кількості рядків). Точність також іноді називають «позитивною прогнозною цінністю» або, рідше, «хибною позитивною швидкістю» (але дивіться мою відповідь на відношення між справжнім позитивним, хибнопозитивним, хибнонегативним та справжнім негативним щодо плутанини навколо цього визначення хибного позитивного ставка).

Цікаво, що показники пошуку інформації не включають підрахунок "справжнього негативного". Це має сенс: при пошуку інформації вам не важливо правильно класифікувати негативні екземпляри самі по собі , ви просто не хочете, щоб занадто багато з них забруднювало ваші результати (див. Також Чому не згадується, враховуючи справжні негативи? )

Через цю різницю неможливо перейти від конкретності до точності або навпаки без додаткової інформації, а саме кількості справжніх негативів або, як альтернатива, загальної частки позитивних і негативних випадків. Однак для одного корпусу / тестового набору вища специфічність завжди означає кращу точність, тому вони тісно пов'язані.

У контексті пошуку інформації, як правило, метою є виявлення невеликої кількості збігів із великої кількості документів. Через цю асиметрію набагато складніше отримати хорошу точність, ніж хорошу специфіку, зберігаючи постійність чутливості / згадування. Оскільки більшість документів не мають значення, у вас є набагато більше випадків помилкових тривог, ніж справжні позитивні, і ці помилкові сигнали тривоги можуть заповнити правильні результати, навіть якщо класифікатор має вражаючу точність на збалансованому тестовому наборі (це насправді те, що відбувається в сценаріях I згаданий у моєму пункті 2 вище). Отже, вам дійсно потрібно оптимізувати точність, а не просто забезпечити пристойну специфіку, оскільки навіть вражаючих показників, таких як 99% або більше, іноді недостатньо, щоб уникнути численних помилкових тривог.

Зазвичай існує компроміс між чутливістю та специфічністю (або відкликанням та точністю). Інтуїтивно, якщо ви кинете більш широку мережу, ви виявите більш відповідні документи / позитивні випадки (більша чутливість / відкликання), але ви також отримаєте більше помилкових сигналів тривоги (нижча специфіка та менша точність). Якщо ви класифікуєте все в позитивну категорію, ви маєте 100% запам'ятовування / чутливість, погану точність і в основному непридатний класифікатор ("переважно", тому що якщо у вас немає іншої інформації, цілком розумно вважати, що це не буде дощ у пустелі, і діяти відповідно, тому, можливо, результат не марний, зрештою, для цього вам не потрібна складна модель).

Враховуючи все це, 60% точність та 95% відкликання не здаються занадто поганими, але, знову ж таки, це дійсно залежить від домену та того, що ви маєте намір робити з цим класифікатором.


Деякі додаткові відомості щодо останніх коментарів / редагувань:

Знову ж таки, ефективність, яку ви можете очікувати, залежить від специфіки (у цьому контексті це були б такі речі, як точний набір емоцій, присутніх у тренувальному наборі, якість картинки / відео, світність, оклюзія, рухи голови, акторські чи спонтанні відео, модель, залежна від людини або незалежна від людини, тощо), але F1 понад .7 звучить добре для цього типу додатків, навіть якщо найкращі моделі можуть зробити краще на деяких наборах даних [див. Valstar, MF, Mehu, M., Jiang, B., Pantic, M., & Scherer, K. (2012). Метааналіз першого виклику розпізнавання обличчя. Операції IEEE в системах, людині та кібернетиці, частина B: Кібернетика, 42 (4), 966-979.]

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

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


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

1
@Gala: Яка різниця між "помилковою тривогою" та "помилковою негативою"? Ви маєте на увазі "помилковий сигнал тривоги" та "хибний позитив"?
Метт О'Брайен

@ MattO'Brien Неправдивий сигнал тривоги є помилковим позитивом (тобто система говорить "Остерігайся!" Або "Знайшов щось!", Але діяти нічого і немає необхідності, отже, "помилкова тривога"). Можливо, термінологія трохи заплутана, відповідь я перегляну пізніше.
Гала

@Ojtwist Якщо позитив має попередню ймовірність 67%, то ви можете отримати 100% відкликання та ~ 67% точності, прогнозуючи все як позитивне.
Марк

21

У контексті двійкової класифікації приклади є або позитивними, або негативними.

  • Відкликання стосується питання: "Даючи позитивний приклад, чи виявить його класифікатор?"
  • Точність вирішує питання: "Враховуючи позитивний прогноз від класифікатора, наскільки це вірно?"

Тож залежить, чи зосереджена увага на позитивних прикладах чи на позитивних прогнозах.

Можна сказати "при відкликанні щонайменше 90%, класифікатор з найбільшою точністю - 4". Але якщо важливо якість прогнозів, то серед класифікаторів з точністю принаймні 70%, той, який досягає найбільшого виклику, - 6.


6

Перехід від безперервного прогнозування, що використовується при обчисленні області ROC (ймовірність узгодження; c-індекс), до переривчастого неправильного правила балів (точність класифікації примусового вибору) призводить до різного роду аномалій і вводить в оману аналітика для вибору неправильних прогнозів та / або неправильна модель. Набагато краще приймати рішення на основі правильних правил балування (наприклад, правило скоригування вірогідності / відхилення / логарифмічної ймовірності; оцінка Brier (квадратичний показник точності ймовірності)). Серед безлічі переваг такого підходу є визначення спостережень, класифікація яких небезпечна для вашого здоров'я через невизначеність, спричинену ймовірностями середнього рівня.


Чи не застосовуються ці правила оцінки лише тоді, коли модель дає ймовірні результати?
Olivier_s_j

3
Ви згадали про RUC AUC, який вимагає імовірнісних результатів (або щось таке, що є монотонною функцією). Найкращі методи прогнозування мають ймовірності під кришкою.
Френк Харрелл

DxyY

Проблема використання заходів ROC та непримусового вибору класифікаційної точності полягає в тому, що вони насправді нічого не означають у контексті застосування, де насправді потрібно вибрати поріг відповідно до ділового випадку. Наприклад, у продукту виявлення фінансових злочинів для інвестиційного банківського бізнесу бізнес може мати лише людські ресурси для розслідування 100 класифікацій на рік, це призводить до фіксованого порогу, до якого слід оптимізувати. Джині, зона ROC тощо не скажуть вам, наскільки хороша модель на цьому порозі. ...
samthebest

2
Дуже розумно обмежити бюджет на кількість розслідувань. Для цього не потрібно порогових значень, жодної нової оптимізації, ніяких класифікацій та аналізу ROC. Одне лише сортує спостереження у порядку зменшення прогнозованого ризику та вибирає перші 100 спостережень для дослідження. Це пов'язано з кривою підйому, що використовується в маркетингу.
Френк Харрелл

5

Ні точність, ні відкликання не розповідають про всю історію, і важко порівняти предиктора з, скажімо, 90% відкликанням і 60% точністю до прогнозованого, скажімо, з 85% точністю і 65% відкликанням - якщо, звичайно, у вас немає вартість / вигода, пов'язана з кожною з 4 комірок (tp / fp / tn / fn) в матриці плутанини .

Цікавим способом отримання єдиного числа ( рівня кваліфікації , aka коефіцієнта невизначеності ), що описує ефективність класифікатора, є використання теорії інформації :

proficiency = I(predicted,actual) / H(actual)

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

Ви можете знайти папір, презентацію та код (Python) для обчислення показника Proficiency тут: https://github.com/Magnetic/proficiency-metric


цікаво! чи можете ви навести приклад того, як розрахувати рівень кваліфікації? тому що формула для мене виглядає дивно.
самотній

Будь ласка, дивіться github.com/Magnetic/proficiency-metric
sds

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