I've added a simple meta-optimization algorithm to hyperopt called "mix". You use it like this:
```
fmin(...
algo=hyperopt.mix.suggest(algo=
(.1, hyperopt.rand.suggest),
(.6, hyperopt.tpe.suggest),
(.3, hyperopt.anneal.suggest))
```
This will set up an optimization that randomly cycles between three different optimization algorithms. It will choose random search 10% of the time, TPE 60% of the time, and anneal 30% of the time.
Why would you do this?
Different search algorithms bring different biases to the search space. When you have know reason to believe any particular search strategy is "right" you can use this method to diversify your strategies.
- James