sherek_66
sherek_66

Reputation: 531

how do find accuracy of multi-classification svm?

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

Answers (1)

GKi
GKi

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

Related Questions