Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

checkStuff for infill.crit = dib #487

Open
rodemann opened this issue Apr 1, 2020 · 1 comment
Open

checkStuff for infill.crit = dib #487

rodemann opened this issue Apr 1, 2020 · 1 comment

Comments

@rodemann
Copy link

rodemann commented Apr 1, 2020

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.

@hududed
Copy link

hududed commented Mar 22, 2022

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'! 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants