An open API service indexing awesome lists of open source software.

https://github.com/upul/machine-learning-algorithms-from-scratch

A collection of commonly used machine learning algorithms implemented in Python/Numpy
https://github.com/upul/machine-learning-algorithms-from-scratch

implementation ipython-notebook machine-learning pyhton3 tutorial

Last synced: 8 months ago
JSON representation

A collection of commonly used machine learning algorithms implemented in Python/Numpy

Awesome Lists containing this project

README

          

# Machine Learning Algorithms From Scratch

This repository contains a collection of commonly used machine learning algorithms implemented in **`Python/Numpy`**. No other third-party libraries (except **`Matplotlib`**) are used.

## :bookmark_tabs: Table of Contents
- [Introduction](#introduction)
- [Usage](#usage)
- [Prerequisite](#prerequisite)
- [Algorithms](#algorithms)
- [Resources](#resources)
- [Text Books](#text-books)
- [MOOCs and Videos](#moocs-and-videos)

### :loudspeaker: Introduction

This repository contains a collection of commonly used machine learning algorithms implemented in **`Python/Numpy`**. No other third-party libraries (except **`Matplotlib`**) are used.

Algorithms are implemented in `Jupyter` notebooks. Before starting the coding section, we presented the basic intuition of the algorithm along with necessary mathematical derivations.

Optimized and computationally efficient algorithms were not our intention and we just wanted to produce an accessible collection of algorithms for students and software practitioner.

### :hammer: Usage

If you want to read `Jupyter` notebooks just like static document, please follow the `nbviewer` links or else to execute notebooks locally use the following instructions.
1. Clone the repository: **`https://github.com/upul/Machine-Learning-Algorithms-From-Scratch.git`**
2. Go to local repository location: **`cd Machine-Learning-Algorithms-From-Scratch`**
3. Run notebooks: **`jupyter notebook`**

### :capital_abcd: Prerequisite

In order to successfully following `Jupyter` notebooks, we assume that you have a basic understanding of the following areas.

1. Basic programming experience in Python
2. Introductory knowledge of linear algebra
3. Basic probability theory
4. Basic multi-variate calculus

### :nut_and_bolt: Algorithms
* Supervised
* Classification
* Logistic Regression [nbviewer](https://nbviewer.jupyter.org/github/upul/Machine-Learning-Algorithms-From-Scratch/blob/master/supervised/classification/Logistic_Regression.ipynb)
* Linear Discriminant Analysis
* Decision Tree Classifier [nbviewer](https://nbviewer.jupyter.org/github/upul/Machine-Learning-Algorithms-From-Scratch/blob/master/supervised/classification/Classification_Tree.ipynb)
* Ransom Forest Classifier
* Gradient Boosting Classifier
* Regression
* Linear Regression [nbviewer](https://nbviewer.jupyter.org/github/upul/Machine-Learning-Algorithms-From-Scratch/blob/master/supervised/regression/Linear_Regression.ipynb)
* Ridge Regression
* Lasso Regression
* Decision Tree Regression [nbviewer](https://nbviewer.jupyter.org/github/upul/Machine-Learning-Algorithms-From-Scratch/blob/master/supervised/regression/Decision_Tree_Regression.ipynb)
* Unsupervised
* Clustering
* K-Means
* Gaussian Mixture

### :open_file_folder: Resources
- #### :books: Text Books

Following books were immensely helpful when we were preparing these `Jupyter` notebooks. We believe these books should be available on every Machine Learning/Data Science practitioner's bookshelves.






- #### :movie_camera: MOOCs and Videos
Following MOOCs and Youtube playlists are simply amazing. If you want to broaden your Machine Learning knowledge I'm pretty sure those MOOCs and videos will be really helpful.

- [Machine Learning - UBC](https://www.youtube.com/playlist?list=PLE6Wd9FR--EdyJ5lbFl8UuGjecvVw66F6) A graduate level machine learning course taught by prof: Nando de Freitas
- [Foundations of Machine Learning - Bloomberg](https://www.youtube.com/playlist?list=PLnZuxOufsXnvftwTB1HL6mel1V32w0ThI) Really advanced introduction to machine learning taught by prof: David S. Rosenberg