Home › Courses › Core ML: Algorithms from Scratch
Build every classic ML algorithm by hand, then verify against scikit-learn
4 phases. 18 lessons. 18 labs. 1 capstone. The classical ML algorithms every data scientist uses — linear regression, logistic regression, SVM, decision trees, random forests, KNN, K-Means, DBSCAN, Naive Bayes, boosting, and ensemble methods — every one implemented from scratch in pure Python, then benchmarked against scikit-learn to prove they work. You build a complete ML library and graduate understanding what scikit-learn does under the hood.
4 phases · 18 lessons · 18 labs · 1 capstone
Take Math for AI & ML first — this course builds on it.
Linear & Logistic Regression from Scratch · SVM & Kernel Methods · Decision Trees & Random Forests · K-Means & DBSCAN Clustering · Naive Bayes Classifiers · Boosting & Ensemble Methods · Model Evaluation & Cross-Validation · Feature Engineering & Selection
NumPy · scikit-learn · pandas · Matplotlib · SciPy
It's the practice of implementing every classical ML algorithm — linear regression, logistic regression, SVM, decision trees, random forests, KNN, K-Means, Naive Bayes, boosting — in pure Python, without using scikit-learn's implementations. You build the algorithms, test them on real data, and benchmark against scikit-learn to prove they work.
You build ML models for real problems, but you understand every algorithm at the implementation level. When a model underperforms, you know whether it's the algorithm, the data, or the hyperparameters — because you built the algorithm yourself. When you need a custom variant, you can modify the implementation instead of waiting for scikit-learn to add it.
Every company uses scikit-learn, but most engineers treat it as a black box. The engineer who can implement the algorithms from scratch is the one who can debug production ML issues, tune models intelligently, and build custom solutions when off-the-shelf libraries don't fit. That's the difference between an ML practitioner and an ML engineer.
It is not a theory course. Every algorithm is implemented in code and tested on real data. It is not a scikit-learn tutorial — you'll use scikit-learn to verify your from-scratch implementations, not to replace them. And it is not a deep learning course — that's the next course in the chain.
Yes — this course uses linear algebra (matrix operations), calculus (gradient descent), and probability (Naive Bayes, distributions) throughout. Math for AI & ML builds those foundations; this course applies them to build real ML algorithms.
Because the gap between someone who calls fit() and someone who can debug, tune, and extend the algorithm is the gap between junior and senior. When scikit-learn produces unexpected results, the engineer who built the algorithm from scratch knows why. When a custom requirement doesn't fit any library, the engineer who built from scratch can modify the algorithm.
ML & AI Engineering covers ML in 9 lessons as part of a broader curriculum — enough to use scikit-learn effectively. This course spends 18 lessons implementing every algorithm from scratch, building a complete library, and benchmarking against scikit-learn. It's the difference between using a tool and understanding the tool.
A complete, tested Python ML library with every core algorithm implemented from scratch and benchmarked against scikit-learn. Plus the ability to read any ML algorithm's source code and understand what it does, why it works, and how to modify it.
Math for AI & ML · Deep Learning from Scratch · ML & AI Engineering · Reinforcement Learning
Create a free account — the opening phases of 24 of 30 courses are free, no credit card. Or see Pro pricing.
All courses · Pricing · About · FAQ · Glossary