Machine Learning


This repository contains python implementations in the form of jupyter notebooks for the material covered in Machine Learning course taught by Andrew Ng on Coursera. Each notebook will have the following structure:

  • Introduce the material/topics that will be covered as well as what exercises we'll be using to implement the algorithms and illustrate the concepts.
  • Functions written in python that would help us implement the algorithm. I wrote the whole algorithm from scratch in most lessons to make the concept clear and help fully understand it.
  • Defining the topic we'll be covering with a brief description along with mathematical derivations when possible.
  • Implement the algorithm to illustrate the concepts.
  • Conclusion in the form of key takeaways and things to consider when implementing the discussed algorithms.

Topics Covered

  1. Linear Regression
  2. Logistic Regression
  3. Multi-class Classification with Logistic Regression
  4. Neural Network
  5. Bias-Variance Trade-off
  6. Support Vector Machines
  7. Unsupervised Learning
  8. Anomaly Detection and Recommender Systems

All data used in the notebooks can be found here.

I highly recommend downloading the notebooks to be able to work in your computing environment. Having the notebook locally allows you to run the code and see how is everything related to each other and maybe change some values to see how that would change the algorithm's output.

Note The python version I used was 3.6.1.