`caret` 中的训练误差率

4

我不知道如何使用R中的caret包提取训练误差(即在训练集上获得的误差)。例如,我有以下模型:

data(iris);
library(caret);
model<-train(Species~., data=iris, method='knn', trControl=trainControl(method='cv', number=10), tuneGrid=data.frame(k=20))

我希望能够看到模型在训练数据上的表现如何。我知道可以使用model$results获取每个折叠测试集上的性能,但这不是我想要的。我想展示训练误差有多过于乐观,但我无法做到。这里的文档:

http://www.inside-r.org/packages/cran/caret/docs/train

说明:

results:一个数据框,包含训练错误率和调整参数的值。

这个说法不正确,因为在我的情况下,model$results$Accuracy总是完全等于mean(model$resample$Accuracy)的值。这是测试误差率的值。我想要训练误差率。是否有一种方法可以获得它?


1
请查看此帖子 - phiver
@phiver 我真的看不出那篇帖子有什么用处。它没有告诉我任何新东西,也没有回答问题。 - 5xum
1个回答

1
我认为您需要的是这样的内容:
model3<-train(Species~., data=iris, method='knn', trControl=trainControl(method='none'), tuneGrid=data.frame(k=20))
testPred <- predict(model3, iris)
postResample(testPred, iris$Species)

Accuracy    Kappa 
    0.98     0.97 

我想是的。但是假设我的tuneGrid更大,我想要在1到20之间的每个k的训练准确性。这不可能只通过巧妙地调用“train”来实现吗? - 5xum

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接