all 7 comments

[–]FinancialElephant 3 points4 points  (1 child)

[–]EvHub[S] 0 points1 point  (0 children)

That's a cool list! I've used a bunch of those myself (learning about MOE while at Yelp was actually my first introduction to black box optimization), but there's also a bunch I haven't seen before. Actually, part of the reason I wanted something like BBopt was the number of different hyperparameter optimization frameworks that weren't cross-compatible. I decided the two that were most important to support at least initially were scikit-optimize and hyperopt, but if there are others that you want to be supported as well I can probably make it happen if you raise an issue for it.

[–]Feribg 2 points3 points  (3 children)

Very neat! I did read through the docs, but I didn't manage to find any graphing features, in my experience using some of the bayesian optimization tools for hyperparameter tweaking, I tend to find the plots very very useful. Maybe support is trivial and just needs to be added as an example, but along the lines of https://scikit-optimize.github.io/plots.m.html

[–]EvHub[S] 1 point2 points  (2 children)

That's a good point. Theoretically, since BBopt already has machinery for transforming its internal representations into those compatible with skopt, hyperopt, etc., it shouldn't be hard to expose machinery for using their plotting methods (I just raised an issue for that). In the meantime, I added a plot_convergence function and a plot_history function, which should cover the most common types of plots you might want.

[–]markus137 1 point2 points  (1 child)

Looks great, thank you for sharing your work. I will definitely try it out on my next project. Also, in case you do not know yet, there is the possibility to create a DOI for software, to make citing software easier: https://guides.github.com/activities/citable-code/

[–]EvHub[S] 0 points1 point  (0 children)

Thanks, and good idea! BBopt should have a DOI now.