Reputation: 51
I don't how to figure the following: 1. Which 30 elements did it predicted ? 2. I can't get the ConfusionMatrix working.
Any help appreciated. Thank you.
library(nnet)
attach(iris)
library(caret)
set.seed(3456)
trainIndex <- createDataPartition(iris$Species, p = .8,
list = F,
times = 1)
irisTrain <- iris[ trainIndex,]
irisTest <- iris[-trainIndex,]
irispred <- nnet(Species ~ ., data=irisTrain, size=10)
predicted <- predict(irispred,irisTest,type="class")
output:
predicted <- predict(irispred,irisTest,type="class")
predicted [1] "setosa" "setosa" "setosa" "setosa" "setosa" "setosa" "setosa"
[8] "setosa" "setosa" "setosa" "versicolor" "versicolor" "versicolor" "versicolor" [15] "versicolor" "versicolor" "virginica" "versicolor" "versicolor" "versicolor" "virginica" [22] "virginica" "virginica" "virginica" "virginica" "virginica" "virginica" "virginica" [29] "virginica" "virginica"
Confusion Matrix errors, not sure what the should the 2nd argument be:
confusionMatrix(predicted, iris$Species) Error in table(data, reference, dnn = dnn, ...) : all arguments must have the same length
confusionMatrix(predicted, irisTest, positive=1) Error in sort.list(y) : 'x' must be atomic for 'sort.list' Have you called 'sort' on a list? confusionMatrix(predicted, iris, positive=1) Error in sort.list(y) : 'x' must be atomic for 'sort.list' Have you called 'sort' on a list?
Upvotes: 1
Views: 2886
Reputation: 3688
The second argument should be the reference classes which are in irisTest$Species
. irisTest
is the complete test data including all the other columns and iris$Species
are the species for the whole data, not just the test set.
> confusionMatrix(data = predicted, reference = irisTest$Species)
Confusion Matrix and Statistics
Reference
Prediction setosa versicolor virginica
setosa 10 0 0
versicolor 0 9 0
virginica 0 1 10
Overall Statistics
Accuracy : 0.9667
[...]
Upvotes: 1