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?

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?

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?

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