# Chapter 2. Introduction to Machine Learning Systems Design
## Requirements for ML Systems
- Reliability
- Scalability
- Maintainability
- Adaptability
## Iterative Process
Step 1. Project scoping
Step 2. Data engineering
Step 3. ML model development
Step 4. Deployment
Step 5. Monitoring and continual learning
Step 6. Business analysis
## Framing ML Problems
### Classification versus regression
- A regression model can easily be framed as a classification model.
- A classification model can become a regression model if we make it output values between 0 and 1.
### Binary versus multiclass classification
- A binary classification has 2 classes. If there are more than 2 classes, it becomes multiclass classification. __ML models typically need at least 100 examples for each class to learn to classify that class__.
- When the number of classes is __large__, __hierarchical classification__ might be useful
### Multiclass versus multilabel classification
- __A multiclass classification__ each example belongs to exactly one class
- __A multilabel classification__ each example belongs to one or more classes.
### Multiple ways to frame a problem
Example: Predicting what app a phone user wants to use next
__Input:__ User demographic information, time, location, previous apps used
__Output:__ A probability distribution for every single app on the user’s phone.
__Solution 1:__ __Classification__: Output is a vector of N size for N recomented apps.
=> _**A bad approach** a new app is added, you might have to retrain your model from scratch, or at least retrain all the components of your model whose number of parameters depends on N_
__Solution 2:__ __Regression__: The output is a single value between 0 and 1. the higher the value, the more likely the user will open the app given the context