What I Built
Implemented 15+ classical ML algorithms from scratch in pure NumPy — no scikit-learn or high-level libraries. Covers supervised learning (regression, classification, ensemble methods), unsupervised learning (clustering), and custom linear algebra utilities including PCA, SVD, and Jacobi eigenvalue decomposition.
What I Learned
Mathematics is the foundation. Building from first principles — deriving gradient updates by hand, implementing custom matrix operations, understanding why “ikj” loop ordering outperforms “ijk” for matrix multiplication — taught me that computational efficiency is inseparable from mathematical understanding. Different optimization approaches (closed-form vs iterative) have distinct trade-offs in accuracy, speed, and numerical stability.
Key Results
| Category | Algorithms |
|---|---|
| Regression | Linear Regression (closed-form + gradient descent) |
| Classification | Logistic Regression, SVM (3 variants), KNN, Naive Bayes |
| Ensemble | Decision Trees, Random Forest, Gradient Boosting |
| Unsupervised | K-Means Clustering |
| Linear Algebra | PCA, SVD, Jacobi Eigenvalue Decomposition |
Project
Tech Stack: Pure NumPy | Scope: 15+ algorithms across supervised, unsupervised, and ensemble methods with custom linear algebra
Citation
@online{prasanna_koppolu,
author = {Prasanna Koppolu, Bhanu},
title = {Machine {Learning} from {Scratch}},
url = {https://bhanuprasanna2001.github.io/projects/ml_from_scratch.html},
langid = {en}
}