Hyperparameters are the choices you make before training starts.
The model cannot learn them, because they decide how learning happens.
The learning rate is the most important one in most situations.
Too high and training never settles, too low and it barely moves.
Tree depth, the k in KNN, and the number of layers are all hyperparameters.
There is no formula that hands you the right value.
You try some, you measure, and you try again.
Always measure on validation data, never on the data you trained on.
And never on the test set, or your final score stops meaning anything.
Start with whatever defaults the library gives you.
Defaults are usually sensible, and beating them takes real effort.
Change one thing at a time so you know what caused what.
Some settings interact, which is why one at a time eventually stops working.
Small datasets are far more sensitive to these choices than large ones.
Good hyperparameters cannot rescue bad features or bad labels.