Finding the perfect model for your data set is difficult. Models can require dozens of design decisions, as known as hyperparameters. These hyperparameters can interact with each other in unexpected ways. The only way to evaluate these combinations of hyperparameters is by making a model and testing it, which is expensive. Machine learning practitioners often pick combinations by hand, with frustrating. Hyperopt is a Python library that makes hyperparameter optimization automatic. Hyperopt does this by observing previous combinations of hyperparameters and updating its belief which combination of hyperparameters are most like to achieve good results. Hyperopt-sklearn is a wrapper that makes Hyperopt so simple that you could get excellent results in three lines of code.