Обратное значение ROC-AUC? - PullRequest
       85

Обратное значение ROC-AUC?

0 голосов
/ 15 января 2019

У меня есть проблема классификации, где мне нужно предсказать класс (0,1), учитывая данные. В основном у меня есть набор данных с более чем 300 объектами (включая целевое значение для прогнозирования) и более чем 2000 строк (выборок). Я применил различные классификаторы следующим образом:

 1. DecisionTreeClassifier()
 2. RandomForestClassifier()
 3. GradientBoostingClassifier()
 4. KNeighborsClassifier()

Почти все классификаторы дали мне аналогичные результаты при значении 0,50 AUC, за исключением Случайного леса около 0,28. Я хотел бы знать, правильно ли это, если я инвертирую результат RandomForest, такой как:

 1-0.28= 0.72

И сообщить об этом как AUC? Это правильно?

1 Ответ

0 голосов
/ 15 января 2019

Ваша интуиция не ошибается: если двоичный классификатор работает действительно хуже, чем случайный (т. Е. AUC <0,5), правильная стратегия состоит в том, чтобы просто <em>инвертировать свои прогнозы , то есть сообщать 0, когда классификатор предсказывает 1 и наоборот); из соответствующей записи в Википедии (выделение добавлено):

Диагональ делит пространство РПЦ. Точки над диагональю представляют хорошие результаты классификации (лучше случайных); точки под линией представляют плохие результаты (хуже случайных). Обратите внимание, что вывод постоянно плохого предиктора может быть просто инвертирован для получения хорошего предиктора .

enter image description here

Тем не менее, формально правильный AUC для этого инвертированного классификатора будет состоять в том, чтобы сначала инвертировать отдельные вероятностные предсказания prob вашей модели:

prob_invert = 1 - prob

и затем вычислите AUC, используя эти прогнозы prob_invert (возможно, процесс должен дать аналогичные результаты с описанным вами наивным подходом простого вычитания AUC из 1, но я не уверен в точном результате - см. Также это Quora answer ).

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

...