Giter Club home page Giter Club logo

Comments (15)

berndbischl avatar berndbischl commented on August 25, 2024

We should have an operation "addProposedPointsToDesign".
Do that in sequence. Have an option to exclude points which are too close to already added points.
Have a heuristic to exchnage them for other (random?) points.

from mlrmbo.

jakobbossek avatar jakobbossek commented on August 25, 2024

At the moment points are proposed by method proposePoints and evaluated/added to the design via evalProposedPoints. I suggest one of the two following solutions:

  • let proposePoints handle that, i. e. modify proposePoints: at the end "filter" out points, which are to close to existing design points
  • let proposePointsuntouched and call anotherMethod removeProposedPoints after the proposal, if the option is activated.

Tell me which option seems more appealing to you.

from mlrmbo.

berndbischl avatar berndbischl commented on August 25, 2024

call a separate method in mboTemplate.

and i ithink it really is best to positively "accept" the points in sequence, like i already said.

a point is accepted if it is not too close to existing points or points already accepted.

from mlrmbo.

jakobbossek avatar jakobbossek commented on August 25, 2024

So principally we loop over the proposed points and check whether they are to close. If they are not to close, we add them to the design in a greedy fashion and go on with the next proposed point. Otherwise we remove the point. Ok?

from mlrmbo.

berndbischl avatar berndbischl commented on August 25, 2024

No.

Let S be the points in the design. Let P be the proposed points.

For p in P do
if p is not too close to S (any point), S = S + p

Return points you added in this process.

from mlrmbo.

jakobbossek avatar jakobbossek commented on August 25, 2024

I am confused. This is what I described above.

Moreover, If we have two proposed points in P, i.e. P = {p1,p2} and the first is accepted, then the second point is checked not being in (S u {p1}), right?
As a last point. If all points are too close, we return the one which has to biggest distance. I think this is a good Idea.

from mlrmbo.

berndbischl avatar berndbischl commented on August 25, 2024

I am confused. This is what I described above.

Ok. Maybe I misread.

Moreover, If we have two proposed points in P, i.e. P = {p1,p2} and the first is accepted, then the second >point is checked not being in (S u {p1}), right

Yes that it is not too close to them. I said S = S + p in the pseudo code.

As a last point. If all points are too close, we return the one which has to biggest distance. I
think this is a good Idea.

I dont get this. If all proposed points are too close to the current design, you must return none.
The kriging model is likely to break if you add points which are too close.

from mlrmbo.

jakobbossek avatar jakobbossek commented on August 25, 2024

Yes that it is not too close to them. I said S = S + p in the pseudo code.

Ok, I asked again just to be sure ;-)

I dont get this. If all proposed points are too close to the current design, you must return none.
The kriging model is likely to break if you add points which are too close.

Ok, I understand and know this kriging issue, but we have to propose something. Otherwise we cannot refine the model. Do we stop the optimization process if this happens?

from mlrmbo.

berndbischl avatar berndbischl commented on August 25, 2024

Hmm. For now do it like this:

For EVERY removed point sample a random point and add this.

from mlrmbo.

jakobbossek avatar jakobbossek commented on August 25, 2024

Ok, but if we do so we also have to compute crit.vals and stuff like that for all the random points as well.
Moreover we should add a loop, because the random points may be too close as well.

from mlrmbo.

jakobbossek avatar jakobbossek commented on August 25, 2024

Ok, for now there is no loop. Discarded points are replaced by random points and the meta data for these points is set to NA.

from mlrmbo.

berndbischl avatar berndbischl commented on August 25, 2024

Ok.

  1. Add a boolean flag to the opt.path / getExtras that a point was produced by random sampling.

  2. The probability is basically zero that you produce a "close point" again by random sampling so I guess we dont need a second loop for now to check this.

  3. Make sure that we have unit tests and fix / generalize the buggy one I already coded for LCB.

from mlrmbo.

jakobbossek avatar jakobbossek commented on August 25, 2024

Ok, basically this is done and tested.

from mlrmbo.

berndbischl avatar berndbischl commented on August 25, 2024

Yeah, because I invested time into it...

Can you please carefully and manually check that this does what is expected, all the "events" are logged correctly, so one can later see what happened?

Then close it

from mlrmbo.

jakobbossek avatar jakobbossek commented on August 25, 2024

Checked it. Seemingly it works as expected. Closing.

from mlrmbo.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.