Given a supervised machine learning problem, the first question many people ask is usually what is the best classification or regression algorithm to solve it. However, there is no one-size-fits-all solution, or no free lunch. No one could know which algorithm will work the best before trying multiple ones and fine-tuning the optimal one. We will be looking into best practices around this in the following sections.