如何找到多分类svm的准确性?

时间:2019-07-16 14:13:03

标签: r svm multiclass-classification

在此网站中: https://medium.com/@ODSC/build-a-multi-class-support-vector-machine-in-r-abcdd4b7dab6

它说我们可以用它来预测

   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

并使用它来查找准确性

   (20+20+19)/nrow(test_iris)  # Compute prediction accuracy

但是当我有非常大的数据集时,我什至看不到表格如何找到这个数字(20 + 20 + 19)?找到准确性?

1 个答案:

答案 0 :(得分:1)

您可以使用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