Площадь под кривой ROC или область под кривой PR для несбалансированных данных?


16

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

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

Я использую выходной прогноз Weka, пример:

inst#,actual,predicted,prediction
1,2:0,2:0,0.873
2,2:0,2:0,0.972
3,2:0,2:0,0.97
4,2:0,2:0,0.97
5,2:0,2:0,0.97
6,2:0,2:0,0.896
7,2:0,2:0,0.973

И я использую библиотеки pROC и ROCR r.


Вы забыли упомянуть, чего хотите достичь с помощью любой из этих кривых.
Марк Клазен

1
Примечание: кажется, что вы хотите выбрать между кривыми ROC (TPR как функция FPR во всем рабочем диапазоне) и кривыми PR (точность в сравнении с отзывом во всем рабочем диапазоне). Терминология типа « AUC-ROC точности и отзыва » очень вводит в заблуждение, поэтому я отредактировал это. Пожалуйста, верните его, если я неправильно понял.
Марк Клазен

Ответы:


27

Вопрос довольно расплывчатый, поэтому я собираюсь предположить, что вы хотите выбрать подходящий показатель производительности для сравнения разных моделей. Для хорошего обзора ключевых различий между кривыми ROC и PR вы можете обратиться к следующему документу: «Отношения между точным восстановлением и кривыми ROC » Дэвиса и Гоудрича .

Процитирую Дэвиса и Гоадрича:

Однако при работе с сильно искаженными наборами данных кривые Precision-Recall (PR) дают более информативную картину производительности алгоритма.

FPR=FPFP+TN,TPR=TPTP+FN.
recall=TPTP+FN=TPR,precision=TPTP+FP

FP

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

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


Бесстыдная реклама . В качестве дополнительного примера вы можете взглянуть на одну из моих работ, в которой я сообщаю как кривые ROC, так и PR в несбалансированном виде. Рисунок 3 содержит кривые ROC и PR для идентичных моделей, четко показывая разницу между ними. Чтобы сравнить площадь под PR и площадь под ROC, вы можете сравнить таблицы 1-2 (AUPR) и таблицы 3-4 (AUROC), где вы можете видеть, что AUPR показывает гораздо большие различия между отдельными моделями, чем AUROC. Это еще раз подчеркивает пригодность кривых PR.


Спасибо за объяснение. Теперь вопрос, почему кривые PR более информативны для несбалансированных данных? Для меня ROC должен быть более информативным, потому что учитывает как TPR, так и FPR.
ММ

Кроме того, эти две статьи меня еще больше запутали! onlinelibrary.wiley.com/doi/10.1111/j.1466-8238.2007.00358.x/… riceanalytics.com/db3/00232/riceanalytics.com/_download/…
MM

1
@MA отредактировал мой ответ, чтобы уточнить.
Марк Клазен

1
Я думаю, что в уравнении для отзыва между TPR и FPR есть перепутывание, нет?
Симон Тордал

Вы правы, так и должно быть: вспомните = ... = TPR, а не FPR. @Marc Claesen, я думаю, что только вы можете изменить это, потому что, когда я пытаюсь это сделать, мне сообщают, что: «Правки должны содержать не менее 6 символов», поэтому невозможно исправить мелкие опечатки, такие как эта.
Понадто

6

Кривые ROC отображают TPR на оси Y и FPR на оси X, но это зависит от того, что вы хотите изобразить. Если нет каких-либо причин для того, чтобы представить это по-другому в вашей области исследования, кривые TPR / FPR ROC являются стандартом для отображения операционных компромиссов, и я полагаю, что они будут наиболее хорошо приняты.

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


0

Я считаю, что наибольшая разница в ROC и PR AUC заключается в том, что ROC определяет, насколько хорошо ваша модель может «рассчитать» положительный класс И отрицательный класс, когда PR AUC действительно смотрит только на ваш положительный класс. Таким образом, в сбалансированной классовой ситуации и где вы заботитесь как о негативных, так и о позитивных классах, метрика ROC AUC прекрасно работает. Если у вас несбалансированная ситуация, предпочтительнее использовать PR AUC, но имейте в виду, что это только определяет, насколько хорошо ваша модель может «рассчитать» положительный класс!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.