This course teaches you about one popular technique used in **machine learning**, **data science** and **statistics**: **linear regression**. We cover the theory from the ground up: derivation of the solution, and applications to real-world problems. We show you how one might code their own linear regression module in Python.

Linear regression is the simplest machine learning model you can learn, yet there is so much depth that you'll be returning to it for years to come. That's why it's a great introductory course if you're interested in taking your first steps in the fields of:

In the first section, I will show you how to use 1-D linear regression to prove that**Moore's Law** is true.

What's that you say? Moore's Law is not linear?

You are correct! I will show you how linear regression can still be applied.

In the next section, we will extend 1-D linear regression to any-dimensional linear regression - in other words, how to create a machine learning model that can learn from multiple inputs.

We will apply multi-dimensional linear regression to predicting a patient's systolic blood pressure given their age and weight.

Finally, we will discuss some practical machine learning issues that you want to be mindful of when you perform data analysis, such as generalization, overfitting, train-test splits, and so on.

This course does not require any external materials. Everything needed (Python, and some Python libraries) can be obtained for FREE.

If you are a programmer and you want to enhance your coding abilities by learning about data science, then this course is for you. If you have a technical or mathematical background, and you want to know how to apply your skills as a software engineer or "hacker", this course may be useful.

This course focuses on "how to build and understand", not just "how to use". Anyone can learn to use an API in 15 minutes after reading some documentation. It's not about "remembering facts", it's about "seeing for yourself" via experimentation. It will teach you how to visualize what's happening in the model internally. If you want more than just a superficial look at machine learning models, this course is for you.

Suggested Prerequisites:

Tips for success:

Linear regression is the simplest machine learning model you can learn, yet there is so much depth that you'll be returning to it for years to come. That's why it's a great introductory course if you're interested in taking your first steps in the fields of:

- deep learning
- machine learning
- data science
- statistics

In the first section, I will show you how to use 1-D linear regression to prove that

What's that you say? Moore's Law is not linear?

You are correct! I will show you how linear regression can still be applied.

In the next section, we will extend 1-D linear regression to any-dimensional linear regression - in other words, how to create a machine learning model that can learn from multiple inputs.

We will apply multi-dimensional linear regression to predicting a patient's systolic blood pressure given their age and weight.

Finally, we will discuss some practical machine learning issues that you want to be mindful of when you perform data analysis, such as generalization, overfitting, train-test splits, and so on.

This course does not require any external materials. Everything needed (Python, and some Python libraries) can be obtained for FREE.

If you are a programmer and you want to enhance your coding abilities by learning about data science, then this course is for you. If you have a technical or mathematical background, and you want to know how to apply your skills as a software engineer or "hacker", this course may be useful.

This course focuses on "how to build and understand", not just "how to use". Anyone can learn to use an API in 15 minutes after reading some documentation. It's not about "remembering facts", it's about "seeing for yourself" via experimentation. It will teach you how to visualize what's happening in the model internally. If you want more than just a superficial look at machine learning models, this course is for you.

Suggested Prerequisites:

- calculus
- matrix arithmetic (adding, multiplying)
- probability
- Python coding: if/else, loops, lists, dicts, sets
- Numpy coding: matrix and vector operations, loading a CSV file

Tips for success:

- Watch it at 2x.
- Take handwritten notes. This will drastically increase your ability to retain the information.
- Write down the equations. If you don't, I guarantee it will just look like gibberish.
- Ask lots of questions on the discussion board. The more the better!
- Realize that most exercises will take you days or weeks to complete.
- Write code yourself, don't just sit there and look at my code.

- Introduction and Outline (03:36) (FREE preview available)
- What is machine learning? How does linear regression play a role? (05:13)
- How to Succeed in this Course (05:18)
- Statistics vs. Machine Learning (09:58)

- Define the model in 1-D, derive the solution (Updated Version) (12:43)
- Define the model in 1-D, derive the solution (14:52)
- Coding the 1-D solution in Python (07:38)
- Exercise: Theory vs. Code (01:19)
- Determine how good the model is: r-squared (05:50)
- R-squared in code (02:15)
- Introduction to Moore's Law Problem (02:30)
- Demonstrating Moore's Law in Code (08:00)
- R-squared Quiz 1 (01:48)
- Suggestion Box (03:03)

- Define the multi-dimensional problem and derive the solution (Updated Version) (09:34)
- Define the multi-dimensional problem and derive the solution (17:07)
- How to solve multiple linear regression using only matrices (01:55)
- Coding the multi-dimensional solution in Python (07:29)
- Polynomial regression - extending linear regression (with Python code) (07:56)
- Predicting Systolic Blood Pressure from Age and Weight (05:45)
- R-squared Quiz 2 (02:05)

- What do all these letters mean? (06:23)
- Interpreting the Weights (04:00)
- Generalization error, train and test sets (02:49)
- Generalization and Overfitting Demonstration in Code (07:32)
- Categorical inputs (05:21)
- One-Hot Encoding Quiz (02:07)
- Probabilistic Interpretation of Squared Error (05:15)
- L2 Regularization - Theory (04:21)
- L2 Regularization - Code (04:13)
- The Dummy Variable Trap (03:58)
- Gradient Descent Tutorial (04:30)
- Gradient Descent for Linear Regression (02:13)
- Bypass the Dummy Variable Trap with Gradient Descent (04:17)
- L1 Regularization - Theory (03:05)
- L1 Regularization - Code (04:25)
- L1 vs L2 Regularization (03:05)
- Why Divide by Square Root of D? (06:32)

- Brief overview of advanced linear regression and machine learning topics (05:15)
- Exercises, practice, and how to get good at this (03:54)
- Data Science Interview Question - Residuals (04:50)

- What is the Appendix? (02:48)
- Windows-Focused Environment Setup 2018 (20:20)
- How to install Numpy, Scipy, Matplotlib, Pandas, IPython, Theano, and TensorFlow (17:22)
- Is this for Beginners or Experts? Academic or Practical? Fast or slow-paced? (22:04)
- How to Code Yourself (part 1) (15:54)
- How to Code Yourself (part 2) (09:23)
- Proof that using Jupyter Notebook is the same as not using it (12:29)
- What order should I take your courses in? (part 1) (11:18)
- What order should I take your courses in? (part 2) (16:07)
- Python 2 vs Python 3 (04:38)
- How to Succeed in this Course (Long Version) (10:24)
- Where to get discount coupons and FREE deep learning material (05:31)

- Calculus Cheatsheet