gpt4 book ai didi

r - 在 R 中使用 Caret 包获取训练错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:24:36 27 4
gpt4 key购买 nike

我正在使用caret 包 来训练K-最近邻 算法。为此,我正在运行这段代码:

Control <- trainControl(method="cv", summaryFunction=twoClassSummary, classProb=T)

tGrid=data.frame(k=1:100)

trainingInfo <- train(Formula, data=trainData, method = "knn",tuneGrid=tGrid,
trControl=Control, metric = "ROC")

如您所见,我对获取 ROC 的 AUC 参数很感兴趣。此代码运行良好,但返回 testing 错误(算法用于调整模型的 k 参数)作为 CrossValidation 折叠错误的平均值。我对返回感兴趣,除了测试错误之外,训练 错误(通过训练数据获得的错误的每一倍的平均值)。我该怎么做?

谢谢

最佳答案

您所问的在多个层面上都是一个坏主意。您会严重高估 ROC 曲线下的面积。考虑 1-NN 模型:您每次都会有完美的预测。

为此,您需要再次运行 train 并修改 indexindexOut 对象:

library(caret)

set.seed(1)
dat <- twoClassSim(200)

set.seed(2)
folds <- createFolds(dat$Class, returnTrain = TRUE)

Control <- trainControl(method="cv",
summaryFunction=twoClassSummary,
classProb=T,
index = folds,
indexOut = folds)

tGrid=data.frame(k=1:100)

set.seed(3)
a_bad_idea <- train(Class ~ ., data=dat,
method = "knn",
tuneGrid=tGrid,
trControl=Control, metric = "ROC")

最大

关于r - 在 R 中使用 Caret 包获取训练错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26319437/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com