# Machine Learning From Scratch

Python implementations of some of the foundational Machine Learning models and algorithms from scratch.

While some of the matrix operations that are implemented by hand (such as calculation of covariance matrix) are available in numpy I have decided to add these as well to make sure that I understand how the linear algebra is applied. The reason the project uses scikit-learn is to evaluate the implementations on sklearn.datasets.

The purpose of this project is purely self-educational.

Feel free to reach out if you have ideas about how to expand this project.

## Current implementations:

#### Supervised Learning:

- Adaboost
- Decision Tree
- K Nearest Neighbors
- Linear Discriminant Analysis
- Linear Regression
- Logistic Regression
- Multi-class Linear Discriminant Analysis
- Multilayer Perceptron
- Naive Bayes
- Perceptron
- Random Forest
- Ridge Regression
- Support Vector Machine