Я пытаюсь построить фронт Парето объекта TuneMultiCritResult
, настроенного на объект управления класса TuneMultiCritControlMBO
:
# multi-criteria optimization of (tpr, fpr) with MBO
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 = makeTuneMultiCritControlMBO()
res = tuneParamsMultiCrit(lrn, sonar.task, rdesc, par.set = ps,
measures = list(tpr, fpr), control = ctrl)
Печать объекта res
дает следующее:
> res
Tune multicrit result:
Points on front: 14
> res$ind
[1] 1 2 4 5 6 7 9 11 12 14 15 16 17 18
Но длина пути оптимизации, сохраненная в res$opt.path
, имеет всего 10 точек, те, что, как мне кажется, предложила MBO.
> res$opt.path
Optimization path
Dimensions: x = 2/2, y = 2
Length: 10
Add x values transformed: FALSE
Error messages: TRUE. Errors: 0 / 10.
Exec times: TRUE. Range: 0.031 - 0.041. 0 NAs.
Поскольку функция plotTuneMultiCritResult
опирается наобъекты res$ind
и res$opt.path
, чтобы напечатать фронт, показывают странные результаты.
Я думаю, что правильный путь - скопировать путь оптимизации объекта res$mbo.result$opt.path
в res$opt.path
, но мой вопрос: какой смысл иметь разные пути оптимизации в res$opt.path
и res$mbo.result$opt.path
?
Спасибо !!Виктор