11.2K ·GitHub
What is this?
A collection of minimal, clean Python implementations of core machine learning algorithms, built so people can learn how the algorithms actually work internally.
Is this a framework I build apps with, or just reference code?
It is a reference-code library, not a production framework: each algorithm is written from scratch for readability, not performance, so you can follow the logic instead of digging through optimized library internals.
How do I run the examples?
You can run the examples directly without installing the package, or run them inside a Docker container.
What do I need to run it?
Just Python, with numpy, scipy and autograd for the implementations.
Can I use these implementations in a real production project?
No - this project is explicitly meant for learning algorithm internals or re-implementing them from scratch, not for production-grade performance or reliability.
What algorithms are included?
Deep learning models (MLP, CNN, RNN, LSTM), linear and logistic regression, random forests, SVM with linear/poly/RBF kernels, k-means, Gaussian Mixture Model, k-nearest neighbors, naive bayes, PCA, factorization machines, RBM, t-SNE, gradient boosting trees, and deep Q-learning for reinforcement learning.
Why not just use scikit-learn or a deep learning framework instead?
Those libraries are optimized for speed and hide the math behind compiled code, while this project trades performance for clarity so you can read, tweak, and actually understand each algorithm.
What are similar projects?
numpy-ml, 100-Days-Of-ML-Code, homemade-machine-learning, ailearning, python-machine-learning-book, 100-Days-Of-ML-Code, ML-From-Scratch, autumn-recruitment
Which topics is it in?
gradient-boosting, clustering, machine-learning-algorithms, neural-networks, numpy, algorithms, reinforcement-learning, computer-science, neural-network, data-science, learning, tutorial