I want to learn parameter preferences of users for different algorithms. The users are queried for their preference for one of the visualizations generated from a pair of parameter configurations for an algorithm.

So I have some data, that contain a lot of tuples like $(X, Y, D)$, where $X$ and $Y$ are parameter configurations and $D = 1$, if $X$ is preferred to $Y$, otherwise $D = 0$.

From this data, I want to be somehow able to apply Bayesian optimization with Gaussian processes.

Does some implementation for that already exist?

  • $\begingroup$ By implementation you would mean code for a statistics package (which would be off-topic here) or a statistical procedure for your problem at hand? $\endgroup$ – Andy Jul 30 '15 at 12:09
  • $\begingroup$ Both would be welcome. A statistical procedure would be great, if some code already exists for it, it would be even better. $\endgroup$ – sheepy Jul 30 '15 at 12:23
  • $\begingroup$ Are your data discrete or continuous? More specifically, are X and Y real numbers or vectors or not? $\endgroup$ – Karel Macek Jul 30 '15 at 13:10
  • $\begingroup$ X and Y are in R^n. So yes, they are vectors. $\endgroup$ – sheepy Jul 30 '15 at 13:16
  • $\begingroup$ You speak about some optimization. What do you want to have optimal? The parameters of your visualization? $\endgroup$ – Karel Macek Jul 30 '15 at 13:18

This solution does not use the Bayesian optimization with Gaussian processes, but it could help. I would transform you data from three columns $(X,Y,D)$ just into columns of them $(A,B)$ containing pairs $(X,D)$ and $(Y,1-D)$. $A$ data are from $\mathbb{R}^n$ and $B$ are binary.

Now, you can use a classification algorithm that would return the probabilities $P(B=0|A)$ and $P(B=1|A)$. Having them, you can maximize this $$ \frac{P(B=1|A)}{P(B=0|A)} $$ To find the adopting any optimization approach (gradient-based or evolutionary). This would maximize the probability that your $A^*$ will be better in comparison to any other $A$.

  • $\begingroup$ So, I tried this approach, and it seems to be Ok. I used logistic regression as an classifier. The problem is, that the algorithm converges too fast to a value and does not move an inch away from it again after it went there. Do you perhaps have an idea how to improve the exploration a bit? $\endgroup$ – sheepy Aug 14 '15 at 8:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.