Field note · March 25, 2025
We cut the modelling module in half
Four lessons became three, and the deleted one was about algorithms.
The first draft of the modelling module had a lesson comparing algorithms. Logistic regression, random forests, gradient boosting, when to use each, hyperparameters that matter.
It was fine. It was also the least useful thing in the module, and I deleted it.
The reason: in every model project I have worked on, algorithm choice was somewhere below fifth in explaining whether the thing worked. Ahead of it, in order:
- Framing. Is the prediction attached to an action anyone will take?
- Leakage. Is a feature accidentally from the future?
- Validation. Does the split resemble deployment?
- Features. Does the model have anything to learn from?
- The threshold. Is the decision rule right for the cost asymmetry?
Algorithm choice sits somewhere after all of that, and for tabular data the honest answer is "gradient boosting with defaults, or a regularised linear model if you need to explain it".
So the module is now three lessons: framing and baselines, validation that matches deployment, and features and interpretation. Plus one on when not to build a model at all, which was originally a section and became a lesson because it was the part people needed most.
Writing that last one changed my own practice. Pricing a model honestly — data assembly, serving, monitoring, retraining, and a named owner indefinitely — against the value of the decisions it improves kills a lot of projects at the whiteboard, which is where they should be killed.
The algorithm comparison is a good blog post. It was a bad lesson, because it teaches the part that is easy to look up instead of the part that is hard to learn.