Implement Machine Learning Algorithms From Scratch (NumPy Only)
10 weeks · 0 milestones
Implement logistic regression, a decision tree, k-means clustering, and a feedforward neural network from scratch using NumPy only — no PyTorch, TensorFlow, or sklearn for the core algorithm logic. Each implementation must be tested on a held-out dataset and benchmarked against the equivalent sklearn implementation on the same data, with documented results explaining any performance differences. The from-scratch implementation is what demonstrates understanding: it is possible to use sklearn without understanding gradient descent; it is not possible to implement gradient descent in NumPy without understanding it. Proof: the implementations reviewed by an ML engineer or CS researcher who provides a different dataset and asks you to predict which of your algorithms will perform best and why — you must reason from your implementation, not just run it.
Milestone map
Milestone map
3 milestones
Implement linear regression with gradient descent and logistic regression with stochastic gradient descent using only NumPy — no scikit-learn or ML library for the core algorithm. Train each on a real dataset, evaluate with appropriate metrics, and compare results to the scikit-learn reference implementation.
Proof required
Submit: a public GitHub repository (or Colab notebook) containing your NumPy implementations with training and evaluation report showing your implementation's metrics vs scikit-learn's on the same dataset; and a 200-word explanation of why gradient descent converges and what the learning rate controls. A data scientist or ML engineer must confirm the implementations are correct and the comparison is valid.
What gets checked
- Implementations use only NumPy — no scikit-learn or ML frameworks for the core algorithm
- Comparison to scikit-learn shows metrics within 1% on identical inputs — not just 'similar' results
- A data scientist or ML engineer has confirmed the implementations are correct