gpt4 book ai didi

R-Caret、caretList、指标 "Accuracy"不在结果集中

转载 作者:行者123 更新时间:2023-12-02 03:08:52 26 4
gpt4 key购买 nike

尝试学习 r-Caret 和 caretList。我正在尝试按照教程caretEnsemble Classification example进行操作

我遇到了一些错误并搜索了如何修复一些基本设置。但是,我收到错误:

Warning messages:
1: In train.default(x, y, weights = w, ...) :
The metric "Accuracy" was not in the result set. ROC will be used instead.
2: In train.default(x, y, weights = w, ...) :
The metric "Accuracy" was not in the result set. ROC will be used instead.

我的设置是:

#Libraries
library(caret)
library(devtools)
library(caretEnsemble)

#Data
library(mlbench)
dat <- mlbench.xor(500, 2)
X <- data.frame(dat$x)
Y <- factor(ifelse(dat$classes=='1', 'Yes', 'No'))

#Split train/test
train <- runif(nrow(X)) <= .66

#Setup CV Folds
#returnData=FALSE saves some space
folds=5
repeats=1
myControl <- trainControl(method='cv',
number=folds,
repeats=repeats,
returnResamp='none',
classProbs=TRUE,
returnData=FALSE,
savePredictions=TRUE,
verboseIter=TRUE,
allowParallel=TRUE,
summaryFunction=twoClassSummary,
index=createMultiFolds(Y[train],
k=folds,
times=repeats)
)
#Make list of all models
all.models<-caretList(Y~., data=X, trControl=myControl, methodList=c("blackboost", "parRF"))

我使用 caretList 编辑了“训练所有模型”部分,以便它可以在代码中与 caretEnsemble 和 caretStack 一起使用(上面提供的链接)。

如何获得准确度以便可以在 caretEnsemble 和 caretStack 中使用它们?

最佳答案

我假设您希望使用“准确度”作为汇总指标,用于稍后通过 caretEnsemblecaretStack 在重采样和金属学习器中选择最佳基础学习器模型.

在这种情况下,您不得在 trainControl 中设置 summaryFunction = TwoClassSummary,因为这样 train 将使用“ROC”作为性能指标,并且不是“准确性”。相反,您应该使用 summaryFunction 的默认设置(这意味着您不必在 trainControl 中显式指定它)。就像这个通过 caretList 调用的 train 一样,由于分类响应,将自动使用“准确性”作为性能指标。

此外,还有一些注意事项:

  • 您不应在 trainControl 中设置 returnResamp = FALSE。因为当您这样做时,您稍后将无法通过 summary(resamples(model.list))
  • 比较模型的单独精度
  • 即使您创建了一个索引来将数据分成训练集和测试集,但在将数据传递到 caretList 时,您也不会使用它。正确的 caretList 调用应该像这样开始 caretList(Y[train] ~ ., data=X[train, ], ...
  • 您上面提到的教程有点过时了。您还应该查看该软件包的 current vignettethis tutorial来自机器学习大师。后者在其示例中还使用“准确性”作为性能指标

关于R-Caret、caretList、指标 "Accuracy"不在结果集中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36266800/

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