Як виміряти ефективність класифікатора, коли близько 100% міток класу належать одному класу?


9

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

Чи є добре відомі тести ефективності класифікаційних моделей даних, що стосуються дуже рідкісних подій?

Відповіді:


3

Мені на думку спадають кілька можливостей.

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

По-друге, як уже сказано @Shorack, вкажіть, які типи помилок є важливими. Часто класифікатору необхідно відповідати певним критеріям ефективності, щоб бути корисним (а загальна точність рідко є достатньою мірою). Існують такі заходи, як чутливість, специфічність, позитивна та негативна попереджувальна цінність, які враховують різні класи та різні типи помилок. Можна сказати, що ці заходи відповідають на різні запитання щодо класифікатора:

  • Чутливість: Яка частина випадків, що дійсно належать до класу С, визнається такою?
  • специфічність: Яка частина випадків, які справді не належать до класу С, визнається такою?
  • позитивне прогнозне значення: Враховуючи, що класифікатор прогнозує клас C, яка ймовірність правильності цього прогнозу?
  • негативне значення прогнозування: Враховуючи, що класифікатор прогнозує, що випадок не є класом C, яка ймовірність того, що це прогноз правильний?

Ці запитання часто дозволяють сформулювати специфікації, необхідні класифікатору, щоб бути корисними.

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

Ви також можете переглянути інформаційний приріст, який дає вам позитивний чи негативний прогноз. Це вимірюється коефіцієнтом позитивної та негативної ймовірності, LR⁺ та LR⁻. Коротко вони розповідають, наскільки прогноз змінює шанси на предмет відповідного класу. (див. мою відповідь тут для більш детального пояснення)

Для вашого тривіального класифікатора все виглядає приблизно так: я буду використовувати клас "0" як клас, про який йдеться, тому "позитивний" означає клас "0". Із 100 випадків на 100 прогнозуються позитивні (належать до класу 0). 97 з них насправді, 3 - ні. Чутливість до класу 0 становить 100% (всі 97 випадків, що справді належать до класу 0, були визнані), специфічність - 0 (жоден з інших випадків не було визнано). позитивне значення прогнозування (якщо припустима відносна частота 97: 3 є репрезентативною) становить 97%, негативне значення прогнозування неможливо обчислити, оскільки негативне прогнозування не відбулося.

LR+=чутливість1-специфічність=1
LR-=1-чутливістьспецифічність=00
Тепер LR⁺ і LR⁻ - це фактори, за допомогою яких ви множите шанси на те, щоб випадок належав до позитивного класу ("0"). Маючи LR⁺ в 1 означає , що позитивний прогноз не дає вам ніякої інформації: це не змінять шанси. Отже, у вас є міра, яка чітко виражає той факт, що ваш тривіальний класифікатор не додає жодної інформації .


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

(@FrankHarrell скаже вам, що вам потрібні "правильні правила скорингу", так що це ще один пошуковий термін, який потрібно пам’ятати.)


3

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

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

  1. Знайдіть більшість 1-х.
  2. Не часто прогнозуйте 1, коли він дійсно дорівнює 0.

І робити це потрібно обом одночасно. Навіть якщо ваша модель зробить лише одну з двох майже ідеально, вона буде мати низький бал, якщо вона не відповідає іншим вимогам. https://en.wikipedia.org/wiki/F1_score


Це неправильне бальне правило, яке використовує лише 1 біт інформації з прогнозів. Неправильні правила балів оптимізовані за допомогою фальшивих моделей.
Френк Харрелл

2

Я радий, що @cbeleites відчинив двері ... Вірогідність узгодження або c-index, який дорівнює площі ROC у спеціальному випадку двійкових Y, є хорошим підсумком прогностичної дискримінації. Сама крива ROC має високе співвідношення чорнило: інформація, але площа під кривою, оскільки вона дорівнює ймовірності узгодження, має багато приємних особливостей, одна з яких полягає в тому, що вона не залежить від поширеностіY=1 оскільки це умова на Y. Це не зовсім правильно (використовувати узагальнене)R2 заходи або коефіцієнт ймовірності χ2 щоб досягти цього) і недостатньо чутливий, щоб використовувати його для порівняння двох моделей, це хороший підсумок однієї моделі.


1

Загальноприйнята характеристика функціонування приймача (ROC) http://en.wikipedia.org/wiki/Receiver_operating_characteristic крива та пов'язані з ними обчислення (а саме область під кривою - AUC). в основному ви уявляєте, що ваш класифікатор дає безперервний відгук (наприклад, між 0 і 1), і ви побудуєте графік чутливості проти помилкової тривоги (1- специфічність), оскільки поріг рішення змінюється від 0 до 1. Вони були спеціально розроблені для рідкісних подій (виявлення ворога літаки?).


1

Коли ви маєте справу з сильно незбалансованими даними, крива Precision-Recall - це дуже хороший інструмент, кращий, ніж її звичайний двоюрідний брат крива ROC .

Девіс та ін. ін. показали, що алгоритм, який оптимізує область під кривою ROC, не гарантовано оптимізує область під кривою PR.

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