R 错误:未使用的参数(measures = list("f1", FALSE, etc)

sta*_*oob 3 r classification mlr

我正在尝试使用 R 中的“mlr”库和 iris 数据集上的“c50”算法(使用 F1 分数作为指标):

library(mlr)
library(C50)
data(iris)

zooTask <- makeClassifTask(data = iris, target = "Species")
forest <- makeLearner("classif.C50")

forestParamSpace <- makeParamSet(
makeIntegerParam("minCases", lower = 1, upper = 100))


randSearch <- makeTuneControlRandom(maxit = 100)


cvForTuning <- makeResampleDesc("CV", iters = 5,  measures = f1)


tunedForestPars <- tuneParams(forest, task = zooTask,
resampling = cvForTuning,
par.set = forestParamSpace,
control = randSearch)



tunedForestPars
Run Code Online (Sandbox Code Playgroud)

但这会导致以下错误:

Error in makeResampleDescCV(iters = 5, measures = list(id = "f1", minimize = FALSE,  : 
  unused argument (measures = list("f1", FALSE, c("classif", "req.pred", "req.truth"), function (task, model, pred, feats, extra.args) 
{
    measureF1(pred$data$truth, pred$data$response, pred$task.desc$positive)
}, list(), 1, 0, "F1 measure", "Defined as: 2 * tp/ (sum(truth == positive) + sum(response == positive))", list("test.mean", "Test mean", function (task, perf.test, perf.train, measure, group, pred) 
mean(perf.test), "req.test")))
> 
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我如何解决这个问题吗?

谢谢

Par*_*ark 5

您宁愿measures在 中添加参数tuneParams。另外,由于iris数据是多类数据,f1因此不可用(如代码所示),请参阅实施的性能测量

cvForTuning <- makeResampleDesc("CV", iters = 5)


tunedForestPars <- tuneParams(forest, task = zooTask,
                              resampling = cvForTuning,
                              par.set = forestParamSpace,
                              control = randSearch, 
                              measures = acc)
Run Code Online (Sandbox Code Playgroud)