Мои данные (инсайдера) имеют зависимую переменную (класс) с 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.