Чому точність не є найкращим показником для оцінки класифікаційних моделей?


107

Це загальне запитання, яке тут задавали побічно багато разів, але на нього немає однозначної відповіді. Було б чудово отримати детальну відповідь на це для довідки.

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

Відповіді:


112

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

Про це Френк Харрелл написав у своєму блозі: Класифікація проти прогнозування та шкоди, спричинені класифікаційною точністю та іншими переривчастими правилами неправильного балування точності .

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

  • Які наслідки прийняти рішення щодо нового спостереження як класу 1 проти 0? Тоді я можу розіслати дешеву маркетингову пошту на всі 1? Або я застосовую інвазивне лікування раку з великими побічними ефектами?
  • Які наслідки трактувати "справжній" 0 як 1, і навпаки? Чи відмічу я клієнта? Піддавати когось зайвого медичного лікування?
  • Мої "класи" справді дискретні? Або насправді існує континуум (наприклад, артеріальний тиск), де клінічні пороги насправді є лише когнітивними ярликами? Якщо так, то наскільки далеко за поріг випадок, який я зараз «класифікую»?
  • Або низька, але позитивна ймовірність бути класом 1 насправді означає "отримати більше даних", "виконати ще один тест"?

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

Правильний спосіб оцінки прогнозованих ймовірностей полягає в тому, щоб не порівнювати їх з порогом, зіставити їх на на основі порогу, а потім оцінити трансформовані класифікація. Натомість слід використовувати належні . Це функції втрат, які відображають прогнозовані ймовірності та відповідні спостережувані результати до значень втрат, які мінімізуються в очікуванні на істинні ймовірності . Ідея полягає в тому, що ми беремо середнє значення за оцінковим правилом, оціненим за декількома (найкраще: багато) спостережуваними результатами, і відповідними передбачуваними ймовірностями членства в класі, як оцінку очікування правила скорингу.(p^,1p^)( 0 , 1 ) ( 0 , 1 ) ( р , 1 - р )(0,1)(0,1)(p,1p)

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

Як зазначає Френк Харрелл , точність - це неправильне забивне правило. (Точніше, точність взагалі не є правилом зарахування балів : дивіться моєї відповіді на те, чи точність - це неправильне правило балів у налаштуваннях бінарної класифікації? ) Це можна побачити, наприклад, якщо у нас взагалі немає прогнозів, а лише перевертання несправедлива монета з ймовірностями . Точність досягається, якщо ми класифікуємо все як перший клас і повністю ігноруємо 40% ймовірність того, що будь-який результат може бути у другому класі. (Тут ми бачимо, що точність є проблематичною навіть для збалансованих класів.) Правильні вважають за краще передбачення перед(0.6,0.4)( 0,6 , 0,4 ) ( 1 , 0 )(0.6,0.4)(1,0) один у очікуванні. Зокрема, точність в порозі переривається: переміщення порогу крихітним шматочком може зробити одне (або багаторазове) передбачення зміни класів і змінити всю точність на дискретну кількість. Це мало сенсу.

Більше інформації можна знайти у двох публікаціях Франка, пов’язаних із вище, а також у главі 10 Стратегії моделювання регресії Франка Харрелла .

(Це безсоромно пояснено з попередньої моєї відповіді .)


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


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

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

8
Я збирався написати відповідь, але потім цього не потрібно було. Браво. Я обговорюю це зі своїми студентами як "розділення проблем" між статистичним моделюванням та прийняттям рішень. Цей тип поняття дуже глибоко вкорінений в інженерній культурі.
Метью Друрі

8
@chainD: якщо ваш класифікатор (пам’ятайте, це той, хто з найвищою точністю ) каже, що «всі в цьому зразку здорові», то який лікар чи аналітик вважає, що в цьому є більше? Я погоджуюсь, що врешті-решт, це заклик до аналітика, але "всі здорові" набагато менш корисні для аналітика, ніж те, що привертає увагу до залишкової невизначеності, як прогноз на 95% / 5%.
Стефан Коласа

11
Відповідь та коментарі @StephanKolassa чудові. Хтось із інших коментарів мав на увазі, що існує різниця в тому, як це розглядається, залежно від того, до якої культури ви є частиною. Це насправді не так; це просто те, що деякі поля намагалися зрозуміти літературу, а інші - ні. Наприклад, прогнозування погоди займає чільне місце і використовує належні правила балів для оцінки точності прогнозувальника щонайменше з 1951 року.
Френк Харрелл

78

Коли ми використовуємо точність, ми присвоюємо однакову вартість помилковим позитивам та помилковим негативам. Коли цей набір даних є незбалансованим - скажімо, він містить 99% примірників в одному класі і лише 1% в іншому - є чудовий спосіб знизити вартість. Прогнозуйте, що кожен екземпляр належить до мажоритарного класу, отримайте точність 99% та йдіть додому рано.

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

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

Точність - чудова метрика. Насправді більшість показників є чудовими, і я люблю оцінювати багато показників. Однак в якийсь момент вам потрібно буде визначитися з використанням моделі A або B. Там ви повинні використовувати єдиний показник, який найкраще відповідає вашим потребам.

Для отримання додаткового кредиту виберіть цей показник перед аналізом, щоб ви не відволікалися під час прийняття рішення.


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

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

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

2
Під "неправильним діагностуванням людини із захворюванням" ви маєте на увазі "неправильне діагностування людини, яка має захворювання (як такої, що не має захворювання)", правда? Тому що цю фразу можна трактувати будь-яким способом.
Tanner Swett

Ви правий Таннер. Я змінив тест, щоб зробити його більш зрозумілим.
DaL

20

Проблема з точністю

Стандартна точність визначається як відношення правильних класифікацій до кількості зроблених класифікацій.

accuracy:=correct classificationsnumber of classifications

Таким чином, це є загальним показником для всіх класів, і як ми скоро побачимо, це не дуже вдало розповісти про оракул, окрім фактичного корисного тесту. Оракул - це класифікаційна функція, яка повертає випадкову здогадку для кожного зразка. Так само ми хочемо мати можливість оцінити ефективність класифікації нашої класифікаційної функції. Точність \ textit {can} може бути корисною мірою, якщо у нас однакова кількість зразків на клас, але якщо у нас незбалансований набір точності зразків взагалі не корисний. Тим більше, тест може мати високу точність, але насправді виконувати гірше, ніж тест із меншою точністю.

ABC0.9

classify(sample):={Aif 

classify

classify(sample):=guess{Awith p =0.96Bwith p =0.02Cwith p =0.02

0.960.9+0.020.052=0.866Aclassify

Точність на клас

accuracy:=correct/(correct+incorrect)A1.00A0.331.000.00>0.5AABA

Чутливість та специфічність

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

Двійкова класифікація

PNTnnFnn

sensitivity:=TPTP+FNspecificity:=TNTN+FP

TPFNTNFPαβαTααTα+FβαTβαTβ+FααββTββTβ+FαβTαβTα+Fβ

sensitivityα:=TαTα+Fβspecificityα:=TβTβ+Fαsensitivityβ:=TβTβ+Fαspecificityβ:=TαTα+Fβ

sensitivityα=specificityβspecificityα=sensitivityβ. Це означає, що якщо у нас є лише два класи, то нам не потрібна чутливість та специфічність для кожного класу.

N-Арська класифікація

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

sensitivity:=true positivestrue positives+false negativesspecificity:=true negativestrue negatives+false-positives

Tni(Fn,i)i(Fi,n)ni(Ti)T(n)nni(k(Fi,k))nni(Fn,i)ni(Fi,n)i(Ti)T(n)+i(k(Fn,i))i(Fn,i)i(Fi,n). Як підсумок ми маємо:

true positives:=Tntrue negatives:=i(Ti)T(n)+i(k(Fn,i))i(Fn,i)i(Fi,n)false positives:=i(Fi,n)false negatives:=i(Fn,i)

sensitivity(n):=TnTn+i(Fn,i)specificity(n):=i(Ti)Tn+i(k(Fi,k))i(Fn,i)i(Fi,n)i(Ti)Tn+i(k(Fi,k))i(Fn,i)

Введення впевненості

confidenceTn+i(Fi,n)nTn

confidence(n):=TnTn+i(Fi,n)

confidencenn

i(k(Fi,k))i(Fi,n)+i(Ti)Tni(Fn,i)

confidence(n)=i(k(Fi,k))i(Fi,n)+i(Ti)Tni(Fn,i)i(k(Fi,k))i(Fi,n)+i(Ti)Tn


Чи можете ви надати будь-який приклад обчислення середньої точності за допомогою матриці плутанини.
Ааднан Фарук

Більш детальний опис із прикладами можна знайти тут: mroman.ch/guides/sensspec.html
mroman

Читаючи його знову, виникає помилка у визначенні trust_false. Я здивований, що ніхто цього не помітив. Я це виправлю в найближчі кілька днів.
mroman

8

Збалансовані класи у вашому наборі даних

Якщо коротко: уявіть, 99% одного класу (скажімо, яблука) та 1% іншого класу у вашому наборі даних (скажімо, банани). Мій супер-пупер алгоритм отримує дивовижну 99% точність для цього набору даних, перевірте це:

return "it's an apple"

Він буде мати рацію 99% часу і тому отримує 99% точність. Чи можу я продати вам свій алгоритм?

Рішення: не використовуйте абсолютний показник (точність), а міру відносно кожного класу (їх там багато, як ROC AUC)


Ні, AUC також не підходить для незбалансованого набору даних.
SiXUlm

@SiXUlm, чи можете ви це детальніше розробити?
Mayou36

P(D)/P(DC)P(T|D)P(F|DC)

Чітка ілюстрацію можна знайти тут: quora.com / ... . Подивіться на відповідь Джеррі Ма.
SiXUlm

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

2

Відповідь DaL - саме це. Я проілюструю це дуже простим прикладом про ... продаж яєць.

21

21

Якщо ваш класифікатор не помилиться, ви отримаєте максимальний дохід, який можете очікувати. Якщо це не ідеально, то:

  • 1
  • 1

Тоді точність вашого класифікатора - це саме те, наскільки ви близькі до максимального доходу. Це ідеальна міра.

a

  • a
  • 2a

a=0.00120.001

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


1

Точність класифікації - це кількість правильних прогнозів, поділене на загальну кількість прогнозів.

Точність може ввести в оману. Наприклад, у проблемі, коли існує великий дисбаланс класів, модель може передбачити значення класу більшості для всіх прогнозів і досягти високої точності класифікації. Отже, потрібні подальші заходи щодо ефективності, такі як оцінка F1 та Brier.


-3

R2

R2

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


2
Гул. (1) Я припускаю, що оцінювати точність чи будь-яку іншу метрику , яка не є вибіркою , я розумію, тому я не розумію, наскільки точність має більшу частину конкретної проблеми . (2) якщо ви застосовуєте модель, підготовлену на популяції А, до іншої популяції B, ви порівнюєте яблука з апельсинами, і я знову не знаю, як це є конкретною проблемою для точності .
Стефан Коласа

(1) Це все-таки проблема точності, і питання полягає у використанні точності в якості золотого стандарту. (2) Сенс побудови класифікатора полягає в тому, щоб використовувати його на апельсинах, а не тільки на яблуках. Це має бути достатньо загальним, щоб фіксувати основні сигнали в даних (такі, які вони існують), а не бути катехізисом для ваших навчальних даних.
Джеймс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.