首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >e1071::svm()的总精度

e1071::svm()的总精度
EN

Stack Overflow用户
提问于 2019-10-16 18:08:57
回答 1查看 296关注 0票数 0

e1071::svm()中的总准确率是如何计算的?这与从混乱表中计算得出的结果不同:

代码语言:javascript
复制
> x <- subset(iris, select = -Species)
> y <- iris$Species
> model <- svm(x, y,cross=10)
> model$tot.accuracy
[1] 96
> caret::confusionMatrix(y,model$fitted)
Confusion Matrix and Statistics

            Reference
Prediction   setosa versicolor virginica
  setosa         50          0         0
  versicolor      0         48         2
  virginica       0          2        48

Overall Statistics

               Accuracy : 0.9733          
  ...
EN

回答 1

Stack Overflow用户

发布于 2019-10-16 18:22:30

总精度是在拟合过程中获得的交叉验证精度。对于每个数据拆分,对模型进行拟合,并计算相应验证数据集上的精度。

单个准确度可以通过以下方式获得

代码语言:javascript
复制
cv_accuracies <- model$accuracies
all.equal(mean(cv_accuracies), model$tot.accuracy)
[1] TRUE

请注意,由于交叉验证将数据分成10个不同的训练和验证对,其中验证集不在拟合过程中使用,因此与预测整个训练集的最终模型时的精度相比,此精度将不同。

代码语言:javascript
复制
sum(fitted(model) == y)/length(y)
[1] 0.97333333
mean(cv_accuracies)
[1] 96.66667

(注1的标准是乘以100 )

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58410804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档