Open rodemann opened 4 years ago
wondering if there is a follow-up on this?
If yes, wondering if this is related. I have my code:
library(mlrMBO)
ps = makeParamSet(
makeIntegerParam("A", lower = 10, upper = 5000),
makeIntegerParam("B", lower = 1, upper = 20000),
makeIntegerParam("C", lower = 0, upper = 100)
)
ctrl = makeMBOControl(n.objectives = 2L, y.name = c("y1", "y2"))
ctrl = setMBOControlInfill(ctrl, opt = "focussearch", opt.focussearch.maxit = 10, opt.focussearch.points = 10000, crit = makeMBOInfillCritEI())
mo = setMBOControlMultiObj(
ctrl,
method = "parego",
parego.s = 100000,
parego.rho = 0.05,
parego.sample.more.weights = 1,
parego.normalize = standard
)
data=read.csv("dataset.csv")
suppressMessages({opt.state = initSMBO(par.set = ps, design = data, control = ctrl, minimize = c(FALSE, FALSE))})
This gives the error:
Error in checkStuff(fun, design, learner, control) :
For multicrit 'dib' infil.crit must be set to 'dib'!
Hello :) checkStuff() does not throw an error if I use direct indicator-based search (DIB) as infill criterion in a single-objective optimization. It only controls whether DIB is used in case of multi-criteria optimization, but not the other way around (cf. line 125 in checkStuff()). Instead an ugly error is thrown later, because diag() is called with nrow = -1 in line 276 of makeMBOInfillCritDIB. It would be nice if the input checking in checkStuff() also controls for wrong use of the multi-criteria infill function DIB.