Перевірка, чи важливе підвищення точності


14

Припустимо, у мене є алгоритм, який класифікує речі на дві категорії. Я можу виміряти точність алгоритму на скажімо 1000 тестових речей - припустимо, 80% речей класифіковано правильно.

Припустимо, я змінив алгоритм якось так, щоб 81% речей були класифіковані правильно.

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

Велике дякую.

Відповіді:


3

Словом, так. Тут важлива статистична значимість. Ви дивитесь на помилку класифікації (або, як ви її даєте тут точність = 1 - помилка класифікації). Якщо ви порівнюєте класифікатори на різних 1000 зразків, ви можете просто використати біноміальний тест, якщо це однакові 1000 зразків, вам потрібно використовувати тест МакНемара. Зауважте, що просто перевірити помилку класифікації таким чином є неоптимальним, оскільки ви вважаєте, що помилка класифікації не залежить від істинного класу, або що частка правдивих класів однакова для ваших потенційних програм.

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


Це чудово, дякую. Я насправді дивлюсь на аналіз настроїв текстових документів - класифікуючи їх на "позитивні" або "негативні" - опубліковано багато роботи, де люди змінюють вибір функції деяким тонким способом, скажімо, на 1% покращення точності - і пишуть документ про це. Мені цікаво, чи в багатьох із цих випадків автори не дали свідчень щодо статистично значущого підвищення точності класифікації.
Бен

Тест МакНемара говорить про те, чи значно відрізняються моделі, що не завжди означає, що різниця в точності є значною (різні моделі можуть мати однакову точність). Щоб перевірити значущість підвищення точності, вам потрібно зробити багато оцінок точності, щоб відобразити розподіли точності і, таким чином, оцінити, чи вони різні. Це означатиме тренування своїх моделей кілька разів.
drevicko

3

Як сказав Ерік, так, ви можете перевірити це на статистичну значимість. Однак подумайте на мить саме те, що саме ви хочете перевірити. Думаю, цікавішим питанням може бути запитання, наскільки ймовірно, що нібито "покращений" алгоритм кращий (або значущо кращий), ніж оригінал, враховуючи дані спостереженої різниці в 1%. Задавання питань з точки зору "статистичної значущості", як правило, призводить до протилежного типу питань: Зважаючи на те, що два алгоритми однакові, чи є менше 5% шансів спостерігати покращення хоча б на цьому значно?

Для мене останнє питання є зворотним, але воно якось стало еталоном. Ви можете перевірити Вікіпедію на суперечки в тестуванні статистичної гіпотези . Згодом ви можете зацікавитись байєсівським висновком . Якщо ви дійсно хочете взяти участь у аналізі даних Байєса, ви можете ознайомитись із "Байєсським аналізом даних" Гельмана та ін. Або переглянути це питання .


2

Застосування відповіді Еріка до Майкла :

Ви можете робити такий же спосіб мислення, до якого звертається Ерік, коли вибираєте міру ефективності.

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

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

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

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

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

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

Більше на тему вашого питання:

Б'юсь об заклад, що ви праві переживаєте.

Наведемо приклад обох сценаріїв Еріка:

Ось незалежні тестові зразки:

> binom.test (x = 810, n = 1000, p = 0.8)

    Exact binomial test

data:  810 and 1000 
number of successes = 810, number of trials = 1000, p-value = 0.4526
alternative hypothesis: true probability of success is not equal to 0.8 
95 percent confidence interval:
 0.7842863 0.8338735 
sample estimates:
probability of success 
                  0.81 

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

Ось найкраща можлива ситуація: парний тест, і новий класифікатор підходить для всіх зразків, старий правильний, також плюс ще 10:

> ## mc.nemar: best possible case
> oldclassif <- c (rep ("correct", 800), rep ("wrong", 200))
> newclassif <- c (rep ("correct", 810), rep ("wrong", 190))
> table (oldclassif, newclassif)
          newclassif
oldclassif correct wrong
   correct     800     0
   wrong        10   190
> mcnemar.test (oldclassif, newclassif)

    McNemar's Chi-squared test with continuity correction

data:  oldclassif and newclassif 
McNemar's chi-squared = 8.1, df = 1, p-value = 0.004427

(p-значення залишається нижче магічного 0,05, якщо два класифікатори не передбачили більше 10 зразків з 1000 ).

Навіть якщо p-значення є правильною відповіддю на неправильне запитання, є ознаки того, що це наче тісне місце.

Однак, беручи до уваги звичну наукову практику, тобто невідому (неопубліковану) кількість нових можливостей було випробувано, і було опубліковано лише те, що працювало трохи краще, місце стає ще більш жорстким. І тоді, класифікатор 80% може бути просто наступником 79% класифікатора ...

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


1

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

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


2
Так, іноді точність - хитра метрика, а іноді - приголомшливий метод; це залежить. Це, здається, є абсолютно дотичним до того, про що йдеться, хоча. Питання полягає у визначенні того, чи краще новий алгоритм відповідно до відомої метрики, а не про вибір метрики в першу чергу.
Майкл МакГоуан

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

Будь-яка причина для такої кількості анонімних подій?
chl

2
@chl Я подумав, що пояснив, що виступаю за те, щоб не відповісти на запитання, яке було задано.
Майкл МакГоуан

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