Recently, I've read many articles or books which deal with cross-validation. But I'm a little bit confused. Generally, when we build a machine, we decide hypothesis sets. And then, we train each model in the hypothesis sets and evaluate the performances of the models via validations set. Finally, we can evaluate the best model performance with the test set (hold-out).
Hypothesis sets can include various combination of hyper-parameters and features. Then how can I choose best features and hyper-parameters for a model? Do I decide all of combination of features and hyper-parameters to hypothesis sets and evalute them via validation set? Then it yields very expensive computation cost. What is best solution to get both best features and hyper-parameters at the same time?