Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dependencies MLR3在学习者分支/依赖项中使用trafo(转换);“非数值参数”;转置错误_Dependencies_Mlr3 - Fatal编程技术网

Dependencies MLR3在学习者分支/依赖项中使用trafo(转换);“非数值参数”;转置错误

Dependencies MLR3在学习者分支/依赖项中使用trafo(转换);“非数值参数”;转置错误,dependencies,mlr3,Dependencies,Mlr3,我正在尝试使用实例来优化一些模型,因此有一个分支步骤可以用于几个模型。我有管道建设和工程没有模型,需要trafos。参数已设置,依赖项工作正常。我使用trafos是因为我更喜欢在指数范围内搜索某些参数,而不是线性搜索。trafos在添加依赖项之前工作,但显然,如果没有依赖项,管道就无法工作。添加依赖项会破坏trafos 有趣的是,在创建reprex时,我意识到错误不需要任务、管道等,它发生在trafo/参数集级别,但只有当管道中有多个学习者时才会发生 错误消息是exp(x$classif.svm

我正在尝试使用实例来优化一些模型,因此有一个分支步骤可以用于几个模型。我有管道建设和工程没有模型,需要trafos。参数已设置,依赖项工作正常。我使用trafos是因为我更喜欢在指数范围内搜索某些参数,而不是线性搜索。trafos在添加依赖项之前工作,但显然,如果没有依赖项,管道就无法工作。添加依赖项会破坏trafos

有趣的是,在创建reprex时,我意识到错误不需要任务、管道等,它发生在trafo/参数集级别,但只有当管道中有多个学习者时才会发生

错误消息是exp(x$classif.svm.gamma)中的
错误:数学函数的非数值参数

library(mlr3verse)

ps <- ParamSet$new(list(
  ParamFct$new("branch2.selection", levels = c('classif.rpart', 'classif.svm')),
  ParamDbl$new("classif.rpart.cp", lower = 0, upper = 0.05),
  ParamDbl$new("classif.svm.gamma", lower = -9L, upper = -5L),
  ParamInt$new("classif.svm.cost", lower = -2L, upper = 2L)
))

ps$trafo <- function(x, param_set) {
  x$classif.svm.cost = 2^(x$classif.svm.cost)
  x$classif.svm.gamma = exp(x$classif.svm.gamma)
  x
}

ps$add_dep("classif.rpart.cp", 'branch2.selection', CondEqual$new("classif.rpart"))

ps$add_dep("classif.svm.gamma", 'branch2.selection', CondEqual$new("classif.svm"))
ps$add_dep("classif.svm.cost", 'branch2.selection', CondEqual$new("classif.svm"))

generate_design_grid(ps, resolution = 6)
generate_design_grid(ps, resolution = 6)$transpose()
库(mlr3verse)

ps由于存在依赖项,参数并不总是处于活动状态,因此不存在于
x
中。你必须在TraFo:

中考虑这一点。
ps$trafo也有专门的解决方案。给定的示例是
ps=ps(branch2.selection=p_fct(c('classif.rpart','classif.svm'))、classif.rpart.cp=p_dbl(0,0.05,dependens=branch2.selection=='classif.rpart')、classif.svm.gamma=p_dbl(-9,-5,trafo=exp,dependens=branch2.selection=='classif.svm.cost=p_int(-2,2,trafo=function(x)x^2,dependens=branch2.selection==“classif.svm”)
并自动处理trafos中缺少的值。我认为您应该将此作为单独的解决方案发布:)