【问题标题】:Error on tuning parameters using classif.svm in mlr3在 mlr3 中使用 classif.svm 调整参数时出错
【发布时间】:2020-01-08 20:03:26
【问题描述】:

我正在使用 mlr3 使用 SVM 分类器构建机器学习工作流。当我尝试调整参数时

library(mlr3)
library(mlr3learners)
library(paradox)
library(mlr3tuning)


task = tsk("pima")
learner = lrn("classif.svm")
learner$param_set
tune_ps = ParamSet$new(list(
  ParamDbl$new("cost", lower = 0.001, upper = 0.1)
))

tune_ps
hout = rsmp("holdout")
measure = msr("classif.ce")
evals20 = term("evals", n_evals = 20)
instance = TuningInstance$new(
  task = task,
  learner = learner,
  resampling = hout,
  measures = measure,
  param_set = tune_ps,
  terminator = evals20
)

tuner = tnr("grid_search", resolution = 10)
result<-tuner$tune(instance)

输出错误

(函数(xs)中的错误: 'xs' 的断言失败:'cost' 的条件不正常:类型等于 C 分类;而是:类型=

我不知道那里发生了什么。

【问题讨论】:

  • 构造svm后能否尝试添加learner$param_set$values$type = "C-classification"
  • 请不要双标。我现在第二次删除了mlr 标签。此外,这看起来像一个错误? C-classification 是 param_set 的默认值,应该在调优期间用作固定设置吗?我会检查的。
  • 这是一个错误,请参阅上游的问题:github.com/mlr-org/paradox/issues/259

标签: mlr3


【解决方案1】:

我们决定使用更具描述性的错误消息来解决此问题,但仍需要在 ParamSet 中显式设置具有依赖关系的参数,而不是回退到 ParamSet 默认值。

有关详细信息,请参阅 https://github.com/mlr-org/paradox/pull/262 和相关问题/PR。

【讨论】:

    猜你喜欢
    • 2021-07-19
    • 2020-07-03
    • 1970-01-01
    • 1970-01-01
    • 2021-06-16
    • 2020-08-20
    • 2021-03-29
    • 2022-05-29
    • 2022-08-16
    相关资源
    最近更新 更多