### Is Machine Learning Crash Course right for you?

Please read through the following Prerequisites and Prework sections before beginning Machine Learning Crash Course, to ensure you are prepared to complete all the modules.

## Prerequisites

Machine Learning Crash Course does not presume or require any prior knowledge in machine learning. However, to understand the concepts presented and complete the exercises, we recommend that students meet the following prerequisites:

**Mastery of intro-level algebra.**You should be comfortable with variables and coefficients, linear equations, graphs of functions, and histograms. (Familiarity with more advanced math concepts such as logarithms and derivatives is helpful, but not required.)**Proficiency in programming basics, and some experience coding in Python.**Programming exercises in Machine Learning Crash Course are coded in Python using TensorFlow. No prior experience with TensorFlow is required, but you should feel comfortable reading and writing Python code that contains basic programming constructs, such as function definitions/invocations, lists and dicts, loops, and conditional expressions.

## Prework

### Problem Framing

If you're new to machine learning, we recommend starting your journey by taking Introduction to Machine Learning Problem Framing. This one-hour course teaches you how to identify appropriate problems for machine learning.

### Getting Started with pandas

The programming exercises in Machine Learning Crash Course use the pandas
library for manipulating data sets. If you're unfamiliar with pandas, we recommend completing
`intro_to_pandas.ipynb`

,
which illustrates the key pandas features used in the exercises.

## Key Concepts and Tools

Machine Learning Crash Course discusses and applies the following concepts and tools. For more information, see the linked resources.

### Math

#### Algebra

- Variables, coefficients, and functions
- Linear equations such as \(y = b + w_1x_1 + w_2x_2\)
- Logarithms, and logarithmic equations such as \(y = ln(1+ e^z)\)
- Sigmoid function

#### Linear algebra

#### Trigonometry

- Tanh (discussed as an activation function; no prior knowledge needed)

#### Statistics

- Mean, median, outliers, and standard deviation
- Ability to read a histogram

#### Calculus (*optional, for advanced topics*)

- Concept of a derivative (you won't have to actually calculate derivatives)
- Gradient or slope
- Partial derivatives (which are closely related to gradients)
- Chain rule (for a full understanding of the backpropagation algorithm for training neural networks)

### Python Programming

#### Basic Python

The following Python basics are covered in The Python Tutorial:

Defining and calling functions, using positional and keyword parameters

Dictionaries, lists, sets (creating, accessing, and iterating)

`for`

loops,`for`

loops with multiple iterator variables (e.g.,`for a, b in [(1,2), (3,4)]`

)String formatting (e.g.,

`'%.2f' % 3.14`

)Variables, assignment, basic data types (

`int`

,`float`

,`bool`

,`str`

)The

`pass`

statement

#### Intermediate Python

The following more advanced Python features are also covered in The Python Tutorial:

### Third-Party Python Libraries

Machine Learning Crash Course code examples use the following features from third-party libraries. Prior familiarity with these libraries is not necessary; you can look up what you need to know when you need it.

#### Matplotlib (for data visualization)

#### Seaborn (for heatmaps)

`heatmap`

function

#### pandas (for data manipulation)

`DataFrame`

class

#### NumPy (for low-level math operations)

#### scikit-learn (for evaluation metrics)

- metrics module

### Bash Terminal / Cloud Console

To run the programming exercises on your local machine or in a cloud console, you should be comfortable working on the command line: