homemade-machine-learning is a repository by Oleksii Trekhleb containing Python implementations of classic machine-learning algorithms done “from scratch”, meaning you don’t rely heavily on high-level libraries but instead write the logic yourself to deepen understanding. Each algorithm is accompanied by mathematical explanations, visualizations (often via Jupyter notebooks), and interactive demos so you can tweak parameters, data, and observe outcomes in real time. The purpose is pedagogical: you’ll see linear regression, logistic regression, k-means clustering, neural nets, decision trees, etc., built in Python using fundamentals like NumPy and Matplotlib, not hidden behind API calls. It is well suited for learners who want to move beyond library usage to understand how algorithms operate internally—how cost functions, gradients, updates and predictions work.
Features
- Implementations of many machine-learning algorithms in pure Python for educational clarity
- Interactive Jupyter notebooks with visualizations of data, decision boundaries, and error surfaces
- Explanation of math behind each algorithm including derivations and intuition
- Hands-on demos where you can change algorithm configuration and see effects
- Emphasis on building algorithms from first principles rather than one-liner libraries
- Good for interview prep, teaching, and self-study of ML fundamentals