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

"Human in the Loop MBO" with multipoint proposal method "moimbo" proposes non-integer values for integer parameters #476

Open
mb706 opened this issue Dec 19, 2019 · 2 comments

Comments

@mb706
Copy link
Contributor

mb706 commented Dec 19, 2019

ps = makeParamSet(
  makeNumericParam("q", lower = -1, upper = 2),
  makeIntegerParam("v", lower = -2, upper = 3)
)
des = generateDesign(n = 7, par.set = ps)
des$y = c(1.20, 0.97, 0.91, 3.15, 0.58, 1.12, 0.50)
ctrl = makeMBOControl(propose.points = 2)
ctrl = setMBOControlMultiPoint(ctrl, method = "moimbo")
opt.state = initSMBO(par.set = ps, design = des, control = ctrl, minimize = TRUE, noisy = FALSE)
proposition <- proposePoints(opt.state)

proposes points

> proposition$prop.points
          q         v
1 0.9227752 -1.015992
2 0.8010565  2.468416

even though "v" is an integer parameter. This is not a problem when called through mbo() because even though the proposed points are non-integers, mlrMBO:::evalProposedPoints.OptState calls ParamHelpers::repairPoint(); this should probably also be done in the HitL code path.

@jakob-r
Copy link
Sponsor Member

jakob-r commented Jan 9, 2020

in the HitL code path

I don't get what you are referring to.
Maybe we could repair the points already in proposePoints()?
However, rounding after proposal is generally a bad idea in MBO since we don't know whether the acq values are better for ceil or floor.

@mb706
Copy link
Contributor Author

mb706 commented Jan 12, 2020

HitL == Human in the Loop

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

No branches or pull requests

2 participants