### 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

Programming exercises run directly in your browser (no setup required!) using the Colaboratory platform. Colaboratory is supported on most major browsers, and is most thoroughly tested on desktop versions of Chrome and Firefox. If you'd prefer to download and run the exercises offline, see these instructions for setting up a local environment.

### 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 the Quick Introduction to pandas tutorial, which illustrates the key pandas features used in the exercises.

### Low-Level TensorFlow Basics

The programming exercises in Machine Learning Crash Course use TensorFlow's high-level tf.estimator API to configure models. If you're interested in building TensorFlow models from scratch, complete these tutorials:

- TensorFlow Hello World: "Hello World" coded in low-level TensorFlow.
- TensorFlow Programming Concepts: A walkthrough of the fundamental components of a TensorFlow application: tensors, operations, graphs, and sessions.
- Creating and Manipulating Tensors: A quick primer on tensors: the central abstraction in TensorFlow programming. Also provides a refresher on matrix addition and multiplication in linear algebra.

## 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: