In general, the main tasks involved in solving a machine learning problem can be summarized into four areas, as follows:
- Data preparation
- Training sets generation
- Model training, evaluation, and selection
- Deployment and monitoring
Starting from data sources to the final machine learning system, a machine learning solution basically follows the following paradigm:

In the following sections, we will be learning about the typical tasks, common challenges, and best practices for each of these four stages.