There are six main approaches to hyperparameter optimization which include
manual search,
grid search,
random search,
evolutionary algorithms,
Bayesian optimization,
and gradient based methods.
scikit-learn grid search and random search
HyperOpt: Bayesian Hyperparameter Optimization
Hyp-RL : Hyperparameter Optimization by Reinforcement Learning