• Stars
    star
    406
  • Rank 106,421 (Top 3 %)
  • Language
    Python
  • License
    MIT License
  • Created over 6 years ago
  • Updated 10 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Implementation of different ML Algorithms from scratch, written in Python 3.x

Machine Learning Algorithms

Implementation of different machine learning algorithms written in Python.

Contents

Installation of libraries

pip install -r requirements.txt

NOTE: scikit-learn module is used only for accessing the datasets and scalers.

Usage

python run_{algorithmToRun}.py

NOTE: All scripts have additional command arguments that can be given by the user.

python run_{algorithmToRun}.py --help

Summary

This project was initially started to help understand the math and intuition behind different ML algorithms, and why they work or don't work, for a given dataset. I started it with just implementing different versions of gradient descent for Linear Regression. I also wanted to visualize the training process, to get a better intuition of what exactly happens during the training process. Over the course of time, more algorithms and visualizations have been added.

Algorithms and Visualizations

Gradient Descent 2D

Gradient Descent 3D

Gradient Descent with LARGE Momentum 2D

Gradient Descent with LARGE Momentum 3D

NOTE: Large value of momentum has been used to exaggerate the effect of momentum in gradient descent, for visualization purposes. The default value of momentum is set to 0.3, however 0.75 and 0.8 was used in the visualization for 2D and 3D respectively.

Linear Regression

Linear Regression for a non-linear dataset

This was achieved by adding polynomial features.

Logistic Regression

Logistic Regression for a non-linear dataset

This was achieved by adding polynomial features.

K Nearest Neighbors 2D

K Nearest Neighbors 3D

KMeans 2D

KMeans 3D

Links

Link to first Reddit post

Link to second Reddit post

Citations

Sentdex: ML from scratch

Coursera Andrew NG: Machine Learning

Todos

  • SVM classification, gaussian kernel
  • Mean Shift
  • PCA
  • DecisionTree
  • Neural Network