makeModelMultiplexerParamSet
可以提供mlr R包状态的文档,名为ParamSets,以消除将哪些参数传递给哪个学习者的歧义,但是该文档未包含如何执行此操作的示例。我已经尝试了一些方法(例如下面显示的内容),但是可以makeModelMultiplexerParamSet
上班了。任何帮助,将不胜感激。
base.learners = list(
makeLearner("classif.ksvm", predict.type = 'prob'),
makeLearner("classif.randomForest", predict.type = 'prob', ntree=500L),
makeLearner('classif.xgboost', predict.type = 'prob', nthread=2, nrounds=1000L)
)
lrn = makeModelMultiplexer(base.learners)
# learners
ps = list(
classif.randomForest = makeParamSet(makeIntegerParam("mtry", lower=1L, upper=100L)),
classif.ksvm = makeParamSet(makeNumericParam("C", lower = 0.01, upper = 0.1),
makeNumericParam("sigma", lower = 0.005, upper = 0.5, trafo = function(x) 2^x)),
classif.xgboost = makeParamSet(makeIntegerParam("max_depth", lower=1L, upper=100L),
makeNumericParam("eta", lower=0.05, upper=0.5),
makeNumericParam("gamma", lower=0, upper=1))
)
ps = makeModelMultiplexerParamSet(lrn, ps)
错误:
Error in FUN(X[[i]], ...): List args has element of wrong type list at position 1. Should be: ParamSet
Traceback:
1. makeModelMultiplexerParamSet(lrn, ps)
2. checkListElementClass(args, "ParamSet")
3. lapply(seq_along(xs), function(i) {
. x = xs[[i]]
. if (!(is(x, cl)))
. stop("List ", s, " has element of wrong type ", class(x)[1L],
. " at position ", i, ". Should be: ", cl)
. })
4. FUN(X[[i]], ...)
5. stop("List ", s, " has element of wrong type ", class(x)[1L],
. " at position ", i, ". Should be: ", cl)
这种方法解决了这个问题:https : //www.rdocumentation.org/packages/mlr/versions/2.17.1/topics/makeModelMultiplexer
用makeModelMultiplexerParamSet()包装makeParams;例如ps = makeModelMultiplexerParamSet(lrn, classif.ksvm = makeParamSet( makeNumericParam("sigma", lower = -10, upper = 10, trafo = function(x) 2^x) ), classif.randomForest = makeParamSet( makeIntegerParam("ntree", lower = 1L, upper = 500L) ) )
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句