Optimizes the hyperparameters of a learner in a multi-criteria fashion. Allows for different optimization methods, such as grid search, evolutionary strategies, etc. You can select such an algorithm (and its settings) by passing a corresponding control object. For a complete list of implemented algorithms look at [TuneMultiCritControl].

tuneParamsMultiCrit(learner, task, resampling, measures, par.set, control,
  show.info = getMlrOption("show.info"), resample.fun = resample)

Arguments

learner

(Learner | character(1))
The learner. If you pass a string the learner will be created via makeLearner.

task

(Task)
The task.

resampling

([ResampleInstance] | [ResampleDesc])
Resampling strategy to evaluate points in hyperparameter space. If you pass a description, it is instantiated once at the beginning by default, so all points are evaluated on the same training/test sets. If you want to change that behavior, look at [TuneMultiCritControl].

measures

[list of [Measure])
Performance measures to optimize simultaneously.

par.set

([ParamHelpers::ParamSet])
Collection of parameters and their constraints for optimization. Dependent parameters with a `requires` field must use `quote` and not `expression` to define it.

control

([TuneMultiCritControl])
Control object for search method. Also selects the optimization algorithm for tuning.

show.info

(logical(1))
Print verbose output on console? Default is set via configureMlr.

resample.fun

([closure])
The function to use for resampling. Defaults to [resample] and should take the same arguments as, and return the same result type as, [resample].

Value

([TuneMultiCritResult]).

See also

Examples

# multi-criteria optimization of (tpr, fpr) with NGSA-II lrn = makeLearner("classif.ksvm") rdesc = makeResampleDesc("Holdout") ps = makeParamSet( makeNumericParam("C", lower = -12, upper = 12, trafo = function(x) 2^x), makeNumericParam("sigma", lower = -12, upper = 12, trafo = function(x) 2^x) ) ctrl = makeTuneMultiCritControlNSGA2(popsize = 4L, generations = 1L) res = tuneParamsMultiCrit(lrn, sonar.task, rdesc, par.set = ps, measures = list(tpr, fpr), control = ctrl)
#> [Tune] Started tuning learner classif.ksvm for parameter set:
#> Type len Def Constr Req Tunable Trafo #> C numeric - - -12 to 12 - TRUE Y #> sigma numeric - - -12 to 12 - TRUE Y
#> With control class: TuneMultiCritControlNSGA2
#> Imputation value: -0Imputation value: 1
#> [Tune-x] 1: C=59.5; sigma=0.00101
#> [Tune-y] 1: tpr.test.mean=0.7368421,fpr.test.mean=0.1562500; time: 0.0 min
#> [Tune-x] 2: C=0.0362; sigma=6.72
#> [Tune-y] 2: tpr.test.mean=1.0000000,fpr.test.mean=1.0000000; time: 0.0 min
#> [Tune-x] 3: C=67.2; sigma=1.03e+03
#> [Tune-y] 3: tpr.test.mean=1.0000000,fpr.test.mean=1.0000000; time: 0.0 min
#> [Tune-x] 4: C=0.668; sigma=3.05
#> [Tune-y] 4: tpr.test.mean=1.0000000,fpr.test.mean=1.0000000; time: 0.0 min
#> [Tune-x] 5: C=0.289; sigma=0.00312
#> [Tune-y] 5: tpr.test.mean=0.9473684,fpr.test.mean=0.4375000; time: 0.0 min
#> [Tune-x] 6: C=59.5; sigma=1.03
#> [Tune-y] 6: tpr.test.mean=1.0000000,fpr.test.mean=1.0000000; time: 0.0 min
#> [Tune-x] 7: C=0.0362; sigma=0.00654
#> [Tune-y] 7: tpr.test.mean=1.0000000,fpr.test.mean=1.0000000; time: 0.0 min
#> [Tune-x] 8: C=59.5; sigma=1.08
#> [Tune-y] 8: tpr.test.mean=1.0000000,fpr.test.mean=1.0000000; time: 0.0 min
#> [Tune] Result: Points on front : 8
plotTuneMultiCritResult(res, path = TRUE)