Пример использования функции multiclass.roc в R - PullRequest
0 голосов
/ 28 августа 2018

Мои данные (инсайдера) имеют зависимую переменную (класс) с 3 классами и 3 независимыми переменными (тип, акции, значение). Я делю его на обучающие и тестовые данные, затем применяю мультиклассовую логистическую регрессию к обучающему набору данных и прогнозирую на тестовых данных. У меня была точность 34%. Теперь я хочу вычислить площадь под кривой с помощью «функции multiclass.roc», но я не могу этого сделать.

library(pROC)

library(nnet)

summary(insider)

#class            type            shares              value          
 buyuk:200000   al :106805   Min.   :0.000e+00   Min.   :0.000e+00  
 kucuk:150000   sat:393195   1st Qu.:3.000e+02   1st Qu.:6.651e+03  
 orta :150000                Median :1.250e+03   Median :2.810e+04  
                             Mean   :2.963e+07   Mean   :5.071e+11  
                             3rd Qu.:6.800e+03   3rd Qu.:1.793e+05  
                             Max.   :5.774e+12   Max.   :9.677e+14


set.seed(7267166)
trainIndex=createDataPartition(insider$class, p=0.7)$Resample1
train=insider[trainIndex, ]
test=insider[-trainIndex, ]
model <- nnet::multinom(class ~., data = train)
predicted.classes <- model %>% predict(test)
mean(predicted.classes == test$class)

[1] 0.338

multiclass.roc(test$class, predict(model, test, type = 'prob'))

#Error in roc.default(response, predictor, levels = X, percent = percent, : Response and predictor must be vectors of the same length. In addition: Warning message: In roc.default(response, predictor, levels = X, percent = percent, : Deprecated use a matrix as predictor. Unexpected results may be produced, please pass a numeric vector.

...