Use ModelListGP for composite functions #2274
-
Hello, The problem the i wanted to tackle is the following: with and I modeled This is the code:
Test function definitions as well as bounds and objective definition code:
The BO Loop code:
the code is currently failing at this step:
Since i didn't get it to work i was playing around with the model itself:
The
I was looking at the batching documentation but did not get smarter with regards to evaluating the posterior of a ModelListGP model and acquisiton functions using the ModelListGP. I also couldn't find a tutorial or discussion covering this issue. What is the correct way to evaluate the posterior here? That each entry gets used as the correct model and that i end up with only one two dimensional output? And following this up how can i then set up the ModelListGP for composite function modeling? I wanted to use the ModelListGP to not be restricted to the individual model requiring the same ammount of training data. I am thankful for every help! |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 2 replies
-
Hi @ToennisStef. One way to do this is to use the
With this setup, evaluating Also to clarify, since your |
Beta Was this translation helpful? Give feedback.
-
To clarify this part: This is meant to say that the models can support different numbers of training data points (but not different feature spaces). I guess this is something we can improve the clarity of. |
Beta Was this translation helpful? Give feedback.
Hi @ToennisStef.
ModelListGP
is generally not designed to work with sub-models with different input features out of the box. When you evaluate aModelListGP
withtest_X
, each sub-model gets evaluated using the sametest_X
and the outputs are concatenated. In your case,test_X
isbatch x q x 3
, so each sub-model has to support inputs of this shape.One way to do this is to use the
FilterFeatures
input transform. This will filter only the desired columns from the original input for each model, and evaluate the model using the resulting input of lower dimension. A setup like this should work: