Reputation: 531
in this website: https://medium.com/@ODSC/build-a-multi-class-support-vector-machine-in-r-abcdd4b7dab6
it says that we can use it for predict
prediction <- predict(svm1, test_iris)
> xtab <- table(test_iris$Species, prediction)
> xtab prediction
setosa versicolor virginica
setosa 20 0 0
versicolor 0 20 1
virginica 0 0 19
and use this for finding accuracy
(20+20+19)/nrow(test_iris) # Compute prediction accuracy
But when I have very very large data set I even can not see table how I can find this number (20+20+19)? to find accuracy?
Upvotes: 0
Views: 67
Reputation: 39647
You can get the correct classified with diag
:
library(e1071)
svm1 <- svm(Species~., data=iris)
prediction <- predict(svm1, iris)
xtab <- table(iris$Species, prediction)
sum(diag(xtab))/sum(xtab) #Overall
#[1] 0.9733333
diag(xtab)/rowSums(xtab) #For each class per observation
# setosa versicolor virginica
# 1.00 0.96 0.96
diag(xtab)/colSums(xtab) #For each class per prediction
# setosa versicolor virginica
# 1.00 0.96 0.96
Upvotes: 1