# Machine learning basics

This repository contains implementations of basic machine learning algorithms in plain Python (Python Version 3.6+). All algorithms are implemented from scratch without using additional machine learning libraries. The intention of these notebooks is to provide a basic understanding of the algorithms and their underlying structure, *not* to provide the most efficient implementations.

- Linear Regression
- Logistic Regression
- Perceptron
- k-nearest-neighbor
- k-Means clustering
- Simple neural network with one hidden layer
- Multinomial Logistic Regression
- Decision tree for classification
- Decision tree for regression

## Data preprocessing

After several requests I started preparing notebooks on how to preprocess datasets for machine learning. Within the next months I will add one notebook for each kind of dataset (text, images, ...). As before, the intention of these notebooks is to provide a basic understanding of the preprocessing steps, *not* to provide the most efficient implementations.

## Feedback

If you have a favorite algorithm that should be included or spot a mistake in one of the notebooks, please let me know by creating a new issue.

## License

See the LICENSE file for license rights and limitations (MIT).