Почему точность не является наилучшей мерой для оценки моделей классификации?


107

Это общий вопрос, который косвенно задавался здесь несколько раз, но в нем нет ни одного авторитетного ответа. Было бы здорово иметь подробный ответ на этот вопрос для справки.

Точность , доля правильных классификаций среди всех классификаций, является очень простой и очень «интуитивно понятной» мерой, однако она может быть плохой мерой для несбалансированных данных . Почему наша интуиция вводит нас в заблуждение и есть ли другие проблемы с этой мерой?

Ответы:


112

Большинство других ответов сосредоточены на примере несбалансированных классов. Да, это важно Однако я утверждаю, что точность проблематична даже при сбалансированных классах.

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

По сути, его аргумент заключается в том, что статистический компонент вашего упражнения заканчивается, когда вы выводите вероятность для каждого класса новой выборки. Сопоставление этих предсказанных вероятностей к 0-1 классификации, выбирая порог , за которым вы классифицируют новое наблюдение , как 1 против 0 не является частью статистики больше , Это часть компонента решения . И здесь вам нужен вероятностный вывод вашей модели - но также такие соображения, как:(p^,1p^)

  • Каковы последствия решения рассматривать новое наблюдение как класс 1 против 0? Затем я рассылаю дешевую маркетинговую почту всем 1? Или я применяю инвазивное лечение рака с большими побочными эффектами?
  • Каковы последствия обработки «истинного» 0 как 1 и наоборот? Буду ли я ставить галочку на клиенте? Подвергать ли кому-либо ненужное лечение?
  • Мои "классы" действительно дискретны? Или на самом деле существует континуум (например, артериальное давление), где клинические пороги в действительности являются просто когнитивными сокращениями? Если да, то насколько далеко за порогом находится дело, которое я сейчас "классифицирую"?
  • Или низкая, но положительная вероятность того, что это будет класс 1, на самом деле означает «получить больше данных», «запустить еще один тест»?

В зависимости от последствий вашего решения, вы будете использовать другой порог для принятия решения. Если действие представляет собой инвазивную хирургию, вам потребуется гораздо более высокая вероятность того, что вы классифицируете пациента как нечто, страдающее от чего-то, чем если действие должно рекомендовать два аспирина. Или вы можете даже принять три разных решения, хотя есть только два класса (больной и здоровый): «иди домой и не волнуйся» против «проведи другой тест, потому что тот, который у нас неокончательный» против «действуй немедленно» ,

Правильный способ оценки прогнозируемых вероятностей - не сравнивать их с пороговым значением, сопоставить их с на основе порогового значения и затем оценить преобразованное классификация. Вместо этого следует использовать правильные . Это функции потерь, которые отображают предсказанные вероятности и соответствующие наблюдаемые результаты в значения потерь, которые минимизируются в ожидании истинными вероятностями . Идея состоит в том, что мы берем среднее значение по правилу оценки, оцененному по нескольким (наилучшим: многим) наблюдаемым результатам и соответствующим прогнозируемым вероятностям членства в классе, в качестве оценки ожидания правила оценки.(p^,1p^)( 0 , 1 ) ( 0 , 1 )(0,1)(0,1)(p,1p)

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

Как отмечает Фрэнк Харрелл , точность - это неправильное правило подсчета очков. (Точнее, точность даже не правило подсчета очков на всех : см моего ответа на точность ненадлежащего правило подсчета очков в условиях бинарной классификации? ) Это можно увидеть, например, если у нас нет предсказателей на все и просто флип несправедливая монета с вероятностями . Точность максимальна, если мы классифицируем все как первый класс и полностью игнорируем 40% вероятности того, что любой результат может быть во втором классе. (Здесь мы видим , что точность является проблематичной даже для сбалансированных классов.) Правильные предпочтут прогноза на(0.6,0.4)(0.6,0.4)(1,0) один в ожидании. В частности, точность порогового значения является скачкообразной: незначительное смещение порога может привести к тому, что одно (или несколько) предсказаний изменит классы и изменит всю точность на дискретную величину. Это имеет мало смысла.

Дополнительную информацию можно найти в двух постах Фрэнка, ссылки на которые приведены выше, а также в главе 10 Стратегий регрессионного моделирования Фрэнка Харрелла .

(Это бесстыдно написано в моем предыдущем ответе .)


РЕДАКТИРОВАТЬ. Мой ответ на Пример, когда использование точности в качестве меры результата приведет к неверному выводу, дает, надеюсь, иллюстративный пример, где максимальная точность может привести к неправильным решениям даже для сбалансированных классов .


6
Точка зрения Фрэнка (которую он обсуждал в многочисленных ответах на нашем сайте и в других местах), насколько я понимаю, состоит в том, что если алгоритм классификации не возвращает вероятности, то он является мусором и не должен использоваться. Если честно, большинство часто используемых алгоритмов возвращают вероятности.
амеба

6
Я бы сказал, что алгоритм, который принимает прошлые наблюдения и выводит только классификации, не принимая во внимание вышеизложенные моменты (например, затраты на ошибочные решения), объединяет статистический аспект и аспект принятия решений. Это как если бы кто-то порекомендовал вам конкретный тип автомобиля, не спросив сначала, хотите ли вы перевезти небольшую бейсбольную команду, кучу строительных материалов или только себя. Так что я бы также сказал, что такой алгоритм был бы мусором.
С. Коласса - Восстановить Монику

8
Я собирался написать ответ, но тогда не нужно было. Браво. Я обсуждаю это со своими учениками как «разделение проблем» между статистическим моделированием и принятием решений. Этот тип концепции очень глубоко укоренен в инженерной культуре.
Мэтью Друри

8
@chainD: если ваш классификатор (помните, что это одна с высокой точностью ) говорит , что «все в этом образце здорово», то , что врач или аналитик будет верить , что есть больше к этой истории? Я согласен, что, в конце концов, это призыв к аналитику, но «все здоровы» гораздо менее полезны для аналитика, чем то, что привлекает внимание к остаточной неопределенности, например, прогноз 95% / 5%.
С. Коласса - Восстановить Монику

11
Ответ @StephanKolassa и комментарии превосходны. Чужой комментарий подразумевал, что существует разница в том, как это рассматривается, в зависимости от того, к какой культуре вы принадлежите. Это не совсем так; просто некоторые области пытались понять литературу, а другие - нет. Прогнозирование погоды, например, было на переднем крае и использовало надлежащие правила оценки для оценки точности прогнозистов, по крайней мере, с 1951 года.
Фрэнк Харрелл,

78

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

Проблема начинается, когда фактические затраты, которые мы назначаем для каждой ошибки, не равны. Если мы имеем дело с редким, но смертельным заболеванием, стоимость не диагностирования заболевания больного значительно выше, чем стоимость отправки здорового человека на дополнительные анализы.

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

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

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


3
Отличный ответ - я предложил несколько правок, чтобы попытаться прояснить суть для начинающих в машинном обучении (на кого направлен этот вопрос).
nekomatic

1
Я бы не согласился, что это не проблема машинного обучения. Но решение этой проблемы потребует машинного обучения мета-проблеме и потребует от машины доступа к каким-либо данным, помимо основной информации о классификации.
Shufflepants

3
Я не рассматриваю это как функцию только данных, так как разные цели могут зависеть от разных затрат / модели / производительности / метрик. Я согласен, что в целом вопрос стоимости может решаться математически. Однако такие вопросы, как стоимость лечения пациентов, основаны на совершенно другой информации. Эта информация, необходимая для метаданных, обычно не подходит для методологии машинного обучения, поэтому большую часть времени она обрабатывается различными методами.
Даль

2
Под «ошибочным диагнозом человека с болезнью» вы подразумеваете «ошибочный диагноз человека, у которого есть заболевание (как не имеющего заболевания)», верно? Потому что эту фразу можно интерпретировать в любом случае.
Таннер Светт

Вы правы, Таннер. Я изменил тест, чтобы сделать его более понятным.
Дал

20

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

Стандартная точность определяется как отношение правильных классификаций к числу выполненных классификаций.

accuracy:=correct classificationsnumber of classifications

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

Если у нас есть распределение выборок, такое что 90 \% выборок принадлежит классу , 5 \% принадлежит и еще 5 \% принадлежит тогда следующая классификационная функция будет иметь точность :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.33для других классов. Это уже дает нам гораздо лучший способ оценить эффективность нашей функции классификации. Оракул, всегда угадывающий один и тот же класс, будет давать точность каждого класса для этого класса, но для другого класса. Если наш тест полезен, все точности для каждого класса должны быть . В противном случае наш тест не лучше, чем шанс. Тем не менее, точность каждого класса не учитывает ложных срабатываний. Даже если наша классификационная функция имеет точность 100 \% для класса , также будут ложные срабатывания для (например, ошибочно классифицированный как ).1.000.00>0.5AABA

Чувствительность и Специфика

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

Бинарная классификация

В задачах бинарной классификации есть два класса и . относится к числу выборок, которые были правильно определены как принадлежащие к классу а относится к числу выборок, которые были ошибочно идентифицированы как принадлежащие к классу . В этом случае чувствительность и специфичность определяются следующим образом:PNTnnFnn

sensitivity:=TPTP+FNspecificity:=TNTN+FP

TP - истинные позитивы, - ложные негативы, - настоящие негативы, а - ложные срабатывания. , Тем не менее, мышление с точки зрения негативов и позитивов хорошо для медицинских тестов, но для того, чтобы получить лучшую интуицию, мы должны думать не с точки зрения негативов и позитивов, а в общих классах и . Затем мы можем сказать, что количество сэмплов, правильно идентифицированных как принадлежащих равно а количество сэмплов, фактически принадлежащих равноFNTNFPαβα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-Ary классификация

Чувствительность и специфичность для каждого класса бесполезны, если у нас есть только два класса, но мы можем расширить его на несколько классов. Чувствительность и специфичность определяется как:

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


Можете ли вы привести какой-либо пример расчета средней точности с использованием матрицы путаницы.
Aadnan Farooq A

Вы можете найти более подробное описание с примерами здесь: 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

AUC - площадь под кривой ROC. Кривая ROC представляет собой график зависимости TPR от FPR. Теперь в байесовской системе дисбаланс является нечетным по сравнению с предыдущей вероятностью: . TPR можно увидеть как а FPR можно увидеть как . Предыдущая вероятность не имеет ничего общего с вероятностью. P ( T | D ) P ( F | D C )P(D)/P(DC)P(T|D)P(F|DC)
SiXUlm

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

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

2

Ответ DaL как раз это. Я проиллюстрирую это очень простым примером о ... продаже яиц.

Вы владеете магазином яиц, и каждое проданное яйцо приносит чистый доход в доллара. Каждый покупатель, который входит в магазин, может либо купить яйцо, либо уйти, не покупая его. Для некоторых клиентов вы можете сделать скидку, и вы получите только доллар дохода, но тогда клиент всегда будет покупать.121

Вы подключаете веб-камеру, которая анализирует поведение клиентов с помощью таких функций, как «нюхает яйца», «держит книгу с рецептами омлета» ... и классифицируете их как «хочет купить за доллара» (положительный результат) и «хочет купить». только на доллар "(отрицательный), прежде чем он уходит.121

Если ваш классификатор не ошибается, вы получите максимальный доход, который вы можете ожидать. Если это не идеально, тогда:

  • за каждый ложный положительный результат вы теряете доллар, потому что клиент уходит, а вы не пытались сделать успешную скидку1
  • за каждый ложный негатив вы теряете доллар, потому что делаете бесполезную скидку1

Тогда точность вашего классификатора - это то, насколько вы близки к максимальному доходу. Это идеальная мера.

Но теперь , если скидка доллары. Стоимость:a

  • ложноположительные:a
  • ложноотрицательный:2a

Тогда вам нужна точность, взвешенная с этими числами в качестве меры эффективности классификатора. Например, если , мера совершенно другая. Эта ситуация, скорее всего, связана с несбалансированностью данных: лишь немногие клиенты готовы платить , а большинство заплатило бы . Вам не важно получать много ложных срабатываний, чтобы получить еще несколько истинных положительных результатов. Вы можете настроить порог классификатора в соответствии с этим.2 0,001a=0.00120.001

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


1

Точность классификации - это число правильных прогнозов, деленное на общее количество прогнозов.

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


-3

Вы можете рассматривать точность как классификации: изначально привлекательная метрика, с которой сравниваются модели, которая не подходит для детального изучения.R2

В обоих случаях переоснащение может быть серьезной проблемой. Как и в случае высокого значения может означать, что вы моделируете шум, а не сигнал, с высокой точностью может быть красный флаг, который ваша модель применяет слишком жестко к вашему тестовому набору данных и не имеет общей применимости. Это особенно проблематично, когда у вас сильно разбалансированы классификационные категории. Наиболее точная модель может быть тривиальной, которая классифицирует все данные как одну категорию (с точностью, равной пропорции наиболее частой категории), но эта точность значительно упадет, если вам потребуется классифицировать набор данных с другим истинным распределением категорий ,R2

Как уже отмечали другие, другая проблема с точностью - это неявное равнодушие к цене неудачи, т. Е. Предположение, что все ошибочные классификации равны. На практике это не так, и затраты на получение неправильной классификации сильно зависят от предмета, и вы можете предпочесть свести к минимуму тот или иной вид ошибки, чем максимизировать точность.


2
Hum. (1) Я бы предположил, что оценка точности или любой другой метрики вне выборки будет понятна, поэтому я не вижу, насколько у точности есть более специфическая проблема переоснащения . (2) если вы применяете модель, подготовленную для популяции A, к другой популяции B, то вы сравниваете яблоки с апельсинами, и я опять же не совсем понимаю, как это является конкретной проблемой для точности .
С. Коласса - Восстановить Монику

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