Формат предсказания кривых ROCR в R

Я впервые приближаюсь к кривым ROCR в R и использую

#ROCR Curve
library(ROCR)

predict_rf <- predict(Model_RF, type = 'response')

ROCRpred_rf <- prediction(predict_rf, test.5$si2014)
ROCRperf_rf <- performance(ROCRpred_rf, 'tpr','fpr')
plot(ROCRperf_rf, colorize = TRUE, text.adj = c(train-0.2,1.7))

я получил

> #ROCR Curve
> library(ROCR)
> 
> predict_rf <- predict(Model_RF, type = 'response')
> 
> ROCRpred_rf <- prediction(predict_rf, test.5$si2014)
Error in prediction(predict_rf, test.5$si2014) : 
  Format of predictions is invalid.

Я использую модель RandomForest для прогнозирования факторной переменной (si2014). Это набор данных, который я использовал для своих прогнозов.

> sapply(test.5, class)
   spesa_tot     n_visite      importo        sesso eta_abbonati 
   "numeric"    "numeric"    "numeric"     "factor"    "numeric" 
      si2014     mesi_tot    Residenza      cluster 
   "numeric"    "integer"     "factor"     "factor" 

В чем проблема? С моделью SVM у меня вообще нет проблем....


person ianux22    schedule 13.06.2018    source источник
comment
попробуйте использовать predict_rf <- predict(Model_RF, type = 'prob') Если не работает, приведите воспроизводимый пример.   -  person missuse    schedule 13.06.2018
comment
Теперь он говорит ROCRpred_rf ‹- прогнозирование (predict_rf, test.5 $ si2014) Ошибка в прогнозировании (predict_rf, test.5 $ si2014): количество запусков перекрестной проверки должно быть одинаковым для прогнозов и меток.   -  person ianux22    schedule 13.06.2018


Ответы (1)


Я решил это. Это было легко. Просто сделать

predict_rf <- predict(Model_RF, type = 'response')
predict_rf
ROCRpred_rf <- prediction(as.numeric(predict_rf), as.numeric(train.4$si2014))
ROCRperf_rf <- performance(ROCRpred_rf, 'tpr','fpr')
plot(ROCRperf_rf, colorize = TRUE, text.adj = c(train.4-0.2,1.7))

я изменил

ROCRpred_rf ‹-предсказание(predict_rf, test.5$si2014)

с

ROCRpred_rf ‹-предсказание(as.numeric(predict_rf), as.numeric(train.4$si2014))

person ianux22    schedule 13.06.2018