首页 > 解决方案 > R错误:未使用的参数(measures = list(“f1”,FALSE等)

问题描述

我正在尝试使用 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

但这会导致以下错误:

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")))
> 

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

谢谢

标签: rclassificationmlr

解决方案


你宁愿measurestuneParams. 此外,由于iris数据是多类数据,f1因此不可用(如代码所示),请参阅已实施的绩效测量

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


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

推荐阅读