Проверка значимости улучшения точности

14

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

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

Может ли статистика сказать мне что-нибудь о том, является ли мое улучшение алгоритма статистически значимым? Является ли понятие статистической значимости уместным в этой ситуации? Пожалуйста, укажите мне некоторые ресурсы, которые могут иметь отношение к делу.

Огромное спасибо.

Бен
источник

Ответы:

3

Короче да. Статистическая значимость здесь актуальна. Вы смотрите на ошибку классификации (или, как вы здесь указываете, точность = 1 - ошибка классификации). Если вы сравниваете классификаторы по разным 1000 выборкам, вы можете просто использовать биномиальный тест, если это те же 1000 выборок, которые вам нужны для теста Макнемара. Обратите внимание, что простое тестирование ошибки классификации таким способом является неоптимальным, поскольку вы либо предполагаете, что ошибка классификации не зависит от истинного класса, либо что доля истинных классов одинакова в ваших потенциальных приложениях.

Это означает, что вы должны взглянуть на такие меры, как истинно положительный показатель, ложноположительный показатель или AUC. Какую меру использовать и как ее проверить, зависит от результатов вашего классика. Это может быть просто класс или непрерывное число, дающее вероятность принадлежности к определенному классу.

Erik
источник
Это здорово, спасибо. Я на самом деле смотрю на анализ настроений текстовых документов - классифицируя их как «положительные» или «отрицательные» - там опубликовано много работ, в которых люди каким-то тонким образом меняют выбор функций, скажем, с точностью до 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

(значение р остается ниже магического 0,05, если не более 10 образцов из 1000 были по-разному предсказаны двумя классификаторами).

Даже если p-значения являются правильным ответом на неправильный вопрос, есть признаки того, что это своего рода трудное место.

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

Если вам нравится читать по-немецки, есть несколько действительно хороших книг Бек-Борнхольда и Дуббена. Если я правильно помню, Mit a Wahrscheinlichkeit grenzender Sicherheit очень хорошо обсуждает эти проблемы. (Я не знаю, существует ли английское издание, довольно буквальный перевод названия: «С уверенностью, граничащей с вероятностью»)

cbeleites поддерживает Монику
источник
1

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

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

Фрэнк Харрелл
источник
2
Да, иногда точность является паршивой метрикой, а иногда это потрясающий метод; По-разному. Похоже, это совершенно не касается того, о чем идет речь. Вопрос в том, чтобы определить, лучше ли новый алгоритм в соответствии с известной метрикой, а не в выборе метрики.
Майкл МакГоуэн
Я думаю, что нам нужно тщательно описать цели и функции полезности, и если мы не хотим предоставлять функции полезности, нам нужно выполнить обратное преобразование для функции полезности, которая эффективно принимается при выполнении классификации.
Фрэнк Харрелл
Есть ли причина для такого большого количества анонимных голосов?
ЧЛ
2
@chl Я думал, что объяснил, что я проголосовал за то, что не отвечал на заданный вопрос.
Майкл МакГоуэн
@MichaelMcGowan Достаточно справедливо.
ЧЛ