Optimizing a model is a cyclic process. You need to test the model’s performance with a range of parameter settings, feature sets, and different versions of the code.
Additionally, you may try multiple versions of the training data, as that data is being updated or cleaned.
After you’ve run the model and learned how it performed, you can record the performance metrics, update the parameters, debug the code, and then start over again.
Typically, this loop can repeat tens or hundreds of times before you find an optimal model version.