The process of figuring out the optimal set of hyper-parameters for the given dataset, model and learning algorithm.

One naive way of doing this is to perform a grid-search over all possible combination of hyper-parameter values.