Prove
All outcomes
Skills

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 and Logistic Regression From Scratch

6–10 weeks

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

Common mistakes

  • Using scikit-learn's Lasso or Ridge as a 'scratch implementation' — the proof requires manual gradient descent
  • Comparison to scikit-learn on different datasets or preprocessing — the comparison must be on identical inputs

Resources

Foundationstart here

Depthgo deeper

What a verifier looks for

  • Are the implementations using only NumPy — no scikit-learn for the core algorithm?
  • Is the scikit-learn comparison on identical inputs and preprocessing steps?
  • Does the gradient descent explanation correctly describe why the learning rate matters?

You'll sign in first, then come straight back here.

Implement a Neural Network and Backpropagation From Scratch

10–16 weeks (after milestone 1)

Implement a multi-layer feedforward neural network with backpropagation using only NumPy — no PyTorch, TensorFlow, or automatic differentiation. Implement forward pass, cross-entropy loss, and backpropagation with manual gradient derivation. Train on MNIST and achieve at least 95% test-set accuracy.

Proof required

Submit: a public GitHub repository (or Colab notebook) containing your NumPy neural network with training script, accuracy plot, and confusion matrix; a handwritten or typed derivation of the backpropagation equations for at least two layers; and a comparison to a PyTorch baseline on the same dataset. A data scientist or ML engineer must confirm the implementation is correct and the accuracy is measured on the test set.

What gets checked

  • Implementation uses only NumPy — no automatic differentiation libraries
  • Backpropagation derivation is written out for at least two layers — not just code with gradient variables
  • Test-set accuracy of at least 95% on MNIST — not training-set accuracy

Common mistakes

  • Using PyTorch autograd for the backpropagation — the proof requires manual gradient derivation
  • Accuracy measured on the training set rather than the test set — generalisation is what matters

Resources

Foundationstart here

Depthgo deeper

What a verifier looks for

  • Is the neural network implemented in NumPy only — no automatic differentiation?
  • Is the backpropagation derivation written out for at least two layers?
  • Is the accuracy measured on the test set — not the training set?

You'll sign in first, then come straight back here.

Present ML Implementations and Answer Novel Design Questions

2–4 weeks to prepare and schedule (after milestone 2)

Present your ML implementation portfolio to a data scientist or ML engineer in a live technical review. The reviewer will ask you to explain a design choice in one of your implementations in depth, and pose a novel ML algorithm question you must sketch in real time.

Proof required

Submit: a recording or transcript of a live technical review with a data scientist or ML engineer; the portfolio repositories; and documentation of the novel algorithm question posed, your on-the-spot sketch, and the reviewer's assessment of whether the approach is sound.

What gets checked

  • Review was live — not an async written exchange
  • A novel algorithm design question was posed that was not covered in the portfolio
  • Reviewer's assessment of the on-the-spot sketch is documented

Common mistakes

  • Live review that becomes a portfolio walkthrough without novel questions from the reviewer
  • Novel question that can be answered by recalling the portfolio — must be genuinely new

Resources

Foundationstart here

Depthgo deeper

What a verifier looks for

  • Was the review live — not async?
  • Was the novel question genuinely new — not answerable by recalling the portfolio?
  • Is the reviewer's assessment of the sketch documented?

You'll sign in first, then come straight back here.

We use analytics to improve Powstik. No ads, ever.