2016-02-03 7 views
0

Я использую Proc (в R) с функцией multiclass.roc как указано на резьбе How to plot ROC curves in multiclass classification?Как рассчитать классификацию нескольких классов AUC с метками?

Однако, когда я обратился к моим данным, есть ошибка:

predictor must be numeric or ordered

Очевидно мой метка данных не упорядочена, в этом случае, как я могу вычислить AUC?

P/S: Идея заключается в том, что у меня есть матрица путаницы в результате многоклассового классификатора. Как я могу вычислить AUC для этой матрицы путаницы в R?

Update1:

Скажем, у меня есть 4 класса A, B, C, D без порядка (то есть, не означает, что A> B или B> A)

правильные значения:

A A A B B C D A B C D A B C ... 

В прогнозирующие значения:

A B A B B B C D ... 

Как мне рассчитать AUC для этих данных?

Update 2

код для генерации данных выборки:

x = c(rep("A",50),rep("B",50),rep("C",50),rep("D",50)) 
x = as.factor(x) 
x_true = sample(x) 
x_predict = sample (x) 

Тогда я попытался

library (pROC) 
multiclass.roc(x_true, x_predict) 
Error in roc.default(response, predictor, levels = X, percent = percent, : 
    Predictor must be numeric or ordered. 
+1

Просьба указать некоторые данные и код образца –

+0

Где ваша команда ROC. –

+0

К сожалению, я добавил его также – mamatv

ответ

2

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

+0

Привет, так скажем, я использую randomForest в качестве классификации, а результат - вероятности каждого класса, а не только прогноз. Достаточно ли рассчитать AUC? – mamatv

+0

Я думаю, вы могли бы вычислить AUC, используя индекс Gini, если бы вы знали все о дереве классификации, то есть вероятности для каждого разбитого внутреннего узла. Я считаю, что окончательных вероятностей листьев будет недостаточно, но я буду рад узнать больше и удалить этот ответ, если кто-то убедит меня иначе. – RHertel

0

Обратите внимание, что существует способ приближения AUC, имеющего только одну точку кривой. Он основан на рассмотрении, что точка связана с точками (0,0) и (1,1):

ROC curve with just one point

Если вы сделаете это, в результате АУК

AUC = (1 + TP - FP)/2

где TP - истинная положительная скорость, а FP - ложная положительная скорость (вы можете проверить это с помощью базовой геометрии).

Конечно, как вычислить многоуровневую AUC - это другое дело.

 Смежные вопросы

  • Нет связанных вопросов^_^