ARM-software/mango

Nested arguments in search space

eliorc opened this issue · 2 comments

Sometimes when defining parameters there is some dependency between the parameters. Meaning if one parameter has a specific value, another parameter needs to be supplied that otherwise would'nt.

For example, if we look at SVM, we only need to specify gamma when kernel is ‘rbf’, ‘poly’ or ‘sigmoid’.

If there isn't a way to specify that, then the algorithm can "waste" execution time on settings that don't make sense.

So my question is, is there a way to define a nested search space to create these kind of dependencies? Hyperopt supports this use case

Thanks for the question.
Currently, we don't support the nested search spaces for a single classifier.

We do support a special case of nested search space, where we directly optimize hyperparameters across a set of multi-classifiers. The code for this is still under review and is available here.
Example usage is here. You can define two different types of SVM classifiers one for which kernel is specified, and for another kernel is not needed. Mango can optimize both of them optimally by creating a nested space internally.

We do plan to support the nested search space for a single classifier in the future.

Thanks, this makes the use irrelevant for me at this time. I do have to say this library in the HPO space looks very promising because of the fact that it supports a wide range of prior distributions - this is a problem with many other libraries, that limit the priors to a small set of predefined priors...

Good job, and I hope that the nested case I was referring to will be added some day so I could try this package out