2014-11-28 4 views
1

Я стараюсь предсказывать «цил» в «mtcars» данных с «цилом» в качестве переменного фактора:Как получить точность прогнозирования в R?

data(mtcars) 
mtcars$cyl <- as.factor(mtcars$cyl) 

Я разделить набор данных на «обучение» и «тестирование»:

inTrain = inTrain <- createDataPartition(y=mtcars$cyl,p=0.75, list=FALSE) 
training = mtcars[ inTrain,] 
testing = mtcars[-inTrain,] 

и подходят случайные леса модель:

modelRF <- train(cyl ~ .,method="rf",data=training) 
predRF <- predict(modelRF,testing) 

в настоящее время я пытаюсь получение точности предсказания с функцией confusionMatrix:

confusionMatrix(testing$cyl, predict(predRF, newdata = testing)) 

... но я получаю эту ошибку:

Error in UseMethod("predict") : 
no applicable method for 'predict' applied to an object of class "factor" 

Что я делаю неправильно? Есть ли лучший способ получения точности прогнозирования?

ответ

4

Вы, кажется, немного смущены. predRF уже is предсказание по определению - это не то, что вы можете значимо передать в predict(). Таким образом, вы получите матрицу путаницы просто следующим образом:

> confusionMatrix(testing$cyl,predRF) 
Confusion Matrix and Statistics 

      Reference 
Prediction 4 6 8 
     4 2 0 0 
     6 0 1 0 
     8 0 0 3 

Кроме того, строка, начинающаяся inTrain = inTrain <- выглядит немного странно, хотя синтаксически правильным. Я настоятельно рекомендую вам внимательно изучить ваш код, поскольку я подозреваю, что там может быть еще несколько ошибок.

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