# nsoojin/coursera-ml-py

Python programming assignments for Machine Learning by Prof. Andrew Ng in Coursera

repo name | nsoojin/coursera-ml-py |

repo link | https://github.com/nsoojin/coursera-ml-py |

homepage | |

language | Python |

size (curr.) | 22983 kB |

stars (curr.) | 837 |

created | 2017-03-21 |

license | MIT License |

# Coursera Machine Learning Assignments in Python

## About

If you’ve finished the amazing introductory Machine Learning on Coursera by Prof. Andrew Ng, you probably got familiar with Octave/Matlab programming. With this repo, you can re-implement them in Python, step-by-step, visually checking your work along the way, just as the course assignments.

## How to start

### Dependencies

This project was coded in Python 3.6

- numpy
- matplotlib
- scipy
- scikit-learn
- scikit-image
- nltk

### Installation

The fastest and easiest way to install all these dependencies at once is to use Anaconda.

## Important Note

There are a couple of things to keep in mind before starting.

- all column vectors from octave/matlab are flattened into a simple 1-dimensional ndarray. (e.g., y’s and thetas are no longer m x 1 matrix, just a 1-d ndarray with m elements.)
So in Octave/Matlab,
`>> size(theta) >> (2, 1)`

Now, it is

`>>> theta.shape >>> (2, )`

- numpy.matrix is never used, just plain ol' numpy.ndarray

## Contents

#### Exercise 1

- Linear Regression
- Linear Regression with multiple variables

#### Exercise 2

- Logistic Regression
- Logistic Regression with Regularization

#### Exercise 3

- Multiclass Classification
- Neural Networks Prediction fuction

#### Exercise 4

- Neural Networks Learning

#### Exercise 5

- Regularized Linear Regression
- Bias vs. Variance

#### Exercise 6

- Support Vector Machines
- Spam email Classifier

#### Exercise 7

- K-means Clustering
- Principal Component Analysis

#### Exercise 8

- Anomaly Detection
- Recommender Systems

## Solutions

You can check out my implementation of the assignments here. I tried to vectorize all the solutions.