У меня есть два классификатора
- A: наивная байесовская сеть
- B: древовидная (односвязная) байесовская сеть
С точки зрения точности и других показателей, A работает сравнительно хуже, чем B. Однако, когда я использую пакеты R ROCR и AUC для выполнения анализа ROC, оказывается, что AUC для A выше, чем AUC для B. Почему это происходит?
Истинный положительный (tp), ложный положительный (fp), ложный отрицательный (fn), истинный отрицательный (tn), чувствительность (sen), специфичность (spec), положительное прогностическое значение (ppv), отрицательное прогностическое значение (npv) и Точность (acc) для A и B следующие.
+------+---------+---------+
| | A | B |
+------+---------+---------+
| tp | 3601 | 769 |
| fp | 0 | 0 |
| fn | 6569 | 5918 |
| tn | 15655 | 19138 |
| sens | 0.35408 | 0.11500 |
| spec | 1.00000 | 1.00000 |
| ppv | 1.00000 | 1.00000 |
| npv | 0.70442 | 0.76381 |
| acc | 0.74563 | 0.77084 |
+------+---------+---------+
За исключением чувствительности и связей (spec и ppv) на маргиналах (исключая tp, fn, fn и tn), B работает лучше, чем A.
Когда я вычисляю AUC для сенсора (ось Y) против 1-спецификации (ось X)
aucroc <- auc(roc(data$prediction,data$labels));
Вот сравнение AUC.
+----------------+---------+---------+
| | A | B |
+----------------+---------+---------+
| sens vs 1-spec | 0.77540 | 0.64590 |
| sens vs spec | 0.70770 | 0.61000 |
+----------------+---------+---------+
Итак, вот мои вопросы:
- Почему AUC для A лучше, чем B, когда B "кажется" превосходит A по точности?
- Итак, как мне на самом деле судить / сравнивать классификационные характеристики A и B? Я имею в виду, я использую значение AUC? Использую ли я значение акк, и если да, то почему?
- Кроме того, когда я применяю надлежащие правила оценки к A и B, B превосходит A с точки зрения потери логарифма, квадратичной потери и сферической потери (p <0,001). Как они влияют на оценку эффективности классификации в отношении AUC?
- График ROC для A выглядит очень гладким (это изогнутая дуга), но график ROC для B выглядит как набор связанных линий. Почему это?
По запросу, вот графики для модели А.
Вот графики для модели B.
Вот графики гистограмм распределения вероятностей для A и B. (разрывы установлены на 20).
Вот график рассеяния вероятностей B против A.
источник
Ответы:
источник
Почему AUC для A лучше, чем B, когда B "кажется" превосходит A по точности?
Точность рассчитывается при пороговом значении 0,5. При этом AUC вычисляется путем сложения всех «погрешностей», рассчитанных для всех возможных пороговых значений. ROC можно рассматривать как среднее (ожидаемое значение) этих погрешностей при расчете для всех пороговых значений.
Итак, как мне на самом деле судить / сравнивать классификационные характеристики A и B? Я имею в виду, я использую значение AUC? я могу использовать значение акк? и почему?
Это зависит. Кривые ROC говорят вам о том, насколько хорошо ваша модель разделяет вашу модель на два класса, независимо от того, где находится пороговое значение. Точность - это показатель, который хорошо работает, когда классы сохраняют одинаковый баланс в обучающих и тестовых наборах и когда оценки действительно вероятны. ROC дает вам больше подсказок о том, как будет вести себя модель, если это предположение будет нарушено (однако это всего лишь идея).
Более того, когда я применяю надлежащие правила подсчета к А и В, В превосходит А по потерям в логарифме, квадратичной потере и сферической потере (р <0,001). Как они влияют на оценку эффективности классификации в отношении AUC?
Не знаю. Вы должны лучше понять, о чем ваши данные. Что каждая модель способна понять из ваших данных. И решите позже, какой компромисс лучший. Причина, по которой это происходит, заключается в том, что не существует универсального показателя производительности классификатора.
График ROC для A выглядит очень гладким (это изогнутая дуга), но график ROC для B выглядит как набор связанных линий. почему это?
Это возможно потому, что байесовская модель дает вам плавные переходы между этими двумя классами. Это переводится во многие пороговые значения. Что означает много точек на кривой ROC. Вторая модель, вероятно, дает меньше значений из-за предсказания с тем же значением в больших областях входного пространства. По сути, первая ROC-кривая также состоит из линий, единственное отличие состоит в том, что смежных маленьких линий так много, что вы видите ее в виде кривой.
источник
Во-первых, хотя пороговое значение (0.5) одинаковое, оно совсем не сопоставимо между А и В. На самом деле оно выглядит совсем не так, как ваши гистограммы! Посмотрите на B: все ваши прогнозы <0,5.
Во-вторых, почему B такой точный? Из-за классового дисбаланса. В тесте B у вас есть 19138 отрицательных примеров и 6687 положительных (почему цифры А отличаются по-разному, мне непонятно: возможно, пропущенные значения?). Это означает, что, просто сказав, что все отрицательно, я уже могу достичь довольно хорошей точности: точно 19138 / (19138 + 6687) = 74%. Обратите внимание, что для этого совершенно не требуется никаких знаний, за исключением того факта, что между классами существует дисбаланс: даже самая глупая модель может это сделать!
И это именно то, что тест B делает при пороге 0,5 ... вы получаете (почти) только отрицательные прогнозы.
А это скорее смешанная сумка с. Хотя он имеет немного меньшую точность, обратите внимание, что его чувствительность намного выше при этом отключении ...
Наконец, вы не можете сравнивать точность (производительность с одним порогом) с AUC (средняя производительность по всем возможным порогам). Поскольку эти показатели измеряют разные вещи, неудивительно, что они разные.
Вы должны подумать: что вы действительно хотите сделать? Что важно? В конечном счете, только вы можете ответить на этот вопрос, основываясь на ваших знаниях вопроса. Может быть, AUC имеет смысл (это действительно редко имеет место, когда вы действительно думаете об этом, за исключением тех случаев, когда вы сами не хотите принимать решение, но позволяете другим делать это - скорее всего, если вы создаете инструмент для использования другими), возможно, точность (если вам нужен бинарный ответ, ответ «нет»), но, возможно, при других порогах, может быть, некоторые другие, более непрерывные меры, может быть, одна из мер, предложенных Фрэнком Харреллом ... как уже говорилось, универсального вопроса Вот.
Вернемся к прогнозам, которые вы показали на гистограммах. А дает вам непрерывный или почти непрерывный прогноз. Наоборот, B возвращает в основном только несколько разных значений (как вы можете видеть по «колючей» гистограмме).
На кривой ROC каждая точка соответствует порогу. В A у вас много пороговых значений (потому что прогнозы непрерывны), поэтому кривая плавная. В B у вас есть только несколько порогов, поэтому кривая выглядит как «переход» от SN / SP к другому.
Вы видите вертикальные скачки, когда чувствительность изменяется только (порог делает различия только для положительных случаев), горизонтальные скачки, когда специфичность изменяется только (порог делает различия только для отрицательных примеров), и диагональные скачки, когда изменение порога влияет на оба класса.
источник