Skip to content

flsing/machine-learning

Repository files navigation

Machine Learning Course

Andrew Ng's Stanford University Machine Learning Course (Coursera)

Assignments for this course are written in Octave and Matlab. Beware there may contain mistakes.

Assignment 1 - Linear Regression

Linear regression with one variable to predict profits for a food truck. Implement gradient descent.

Assignment 2 - Logistic Regression & Regularized Logistic Regression

Logistic Regression to predict whether a student will get admitted into university. Regularized logistic regression to predict whether microchips from a fabrication plant passes quality assurance.

Assignment 3 - Multi-class Classification & Neural Networks Representation

Implement one-vs-all logistic regression and neural networks to recognize hand-written digits. Logistic regression to recognize handwritten digits using multiple one-vs-all logistic regression models to build a multi-class classifier. Implement a neural network to recognize handwritten digits. The neural network will be able to represent complex models that form non-linear hypotheses. Implement the feedforward propagation algorithm for prediction.

Assignment 4 - Neural Networks Learning

Implement the backpropagation algorithm for neural networks and apply it to the task of hand-written digit recognition. Implement the cost function and gradient for the neural network with regularization. Implement the sigmoid gradient function. Randomize the initialization. Implement the backpropagation algorithm to learn the parameters for the neural network and regularization to the gradient.

Assignment 5 - Regularized Linear Regression and Bias vs Variance

Implement regularized linear regression and use it to study models with different bias-variance properties. Implement regularized linear regression to predict the amount of water flowing out of a dam using the change of water level in a reservoir. Implement polynomial regression to find a better fit to the data. Implement code to generate the learning curves that will be useful in debugging learning algorithms. Implement an automated method to select the lambda parameter (regularization) and use a cross validation to determine how good each lamda value is.

Assignment 6 - Support Vector Machines (SVM)

Using SVMs to build a spam classifier. Using SVMs with Gaussian kernels on datasets that are not linearly separable. Implement the Guassian kernel algorithm and find the best paraneters for it. Implement preprocessing methods and feature extraction.

Assignment 7 - K-means Clustering and Principal Component Analysis

Implement the K-means clustering algorithm and apply it to compress an image. Use principle component analysis to find a low-dimensional representation of face images. Finding the closest centdroids, computing centroid means. Compute the covariance matrix of the data and compute the eigenvectors. Projecting the data onto the principal components, and reconstructing an approximation of the data.

Assignment 8 - Anomaly Detection and Recommender Systems

Implement the anomaly detection algorithm and apply it to detect failing servers on a network. Use a Gaussian model to detect anomalous examples in the dataset. Use collaborative filtering to build a recommender system for movies. Implemented the collaborative filtering cost function (with and without regularization) and the gradient descent (with and without regularization). Added personal ratings to movies to get personalized movie recommendations.