I'm working on implementing a Bayesian optimization class in Python. As a surrogate model, I used a Gaussian process until now. From what I read it's quite standard as it is efficient and intuitive. However, as mentioned in the paper Decision Forests for Classification,Regression, Density Estimation, Manifold Learning and Semi-Supervised Learning, Random forests might be more efficient for ambiguous training data and for multi-modal distribution of data (I am careful with those affirmations as the authors make those points on a few toy cases only).
I then would like to use random forests as a surrogate model as well as Gaussian processes. For Gaussian processes in Bayesian optimization, a few acquisition functions are available in the literature, some of them have a known analytic form (GP-UCB for example), are well studied and easy to implement.
I am looking for an acquisition function similar to GP-UCB, for random forests surrogate model. Do you know any acquisition function adapted to random forests (if possible with an analytic form) ?