1 - Overview of ML Systems#

1.1 - When to Use ML#

Machine learning is an approach to learn complex patterns from existing data and use these patterns to make predictions on unseen data. This definition provides us with the following attributes:

  1. The system can learn relationships among data.

  2. There are complex patterns within the data to learn.

    • If patterns are simple (cents in a dollar) or do not exist (dair die roll), there is no use.

    • Patterns should be complex with real-world implications, such as predicting stock prices based on tweets from politicians.

  3. Data must be available, or it must be possible to collect data.

  4. ML models mak predictions, so they can only solve problems that require predictive answers.

  5. Unseen data must share patterns with training data.

ML solutions shine if the problem has the following characteristics:

  1. It’s repetitive.

  2. The cost of wrong predictions is cheap.

    • For example, recommendation systems.

  3. It’s at scale.

    • ML solutions require significant investment into data, compute, infrastructure, and talent.

  4. The patterns are constantly changing.

1.1.1 - ML Use Cases#

  • Search engines

  • Recommendation systems

  • Predictive typing

  • Machine translation

  • Fraud detection

  • Price optimization

  • Targeted advertising

  • Churn prediction

  • Skin cancer detection

1.2 - Understanding ML Systems#

1.2.1 - ML in Research Versus in Production#

Interpretability can be really important in many cases.

1.2.2 - ML Systems Versus Traditional Software#

Speed is very important in many real-world cases.