Two different jobs that share a name
Classical machine learning — logistic regression, gradient-boosted trees, SVMs, random forests — is brilliant at structured tabular data, small to medium dataset sizes, and problems where the predictive signal is mostly in a handful of well-engineered columns. It is fast to train, easy to interpret, and runs on a laptop. XGBoost and LightGBM still win most Kaggle tabular competitions, and that is not a stale meme.
Deep learning is brilliant when the predictive signal is buried in raw, high-dimensional, redundant data — pixels, waveforms, character streams — and you have enough examples or a good pretrained backbone. The cost is real: GPUs, careful initialization, normalization, regularization, and a willingness to debug shapes for hours.
The baseline reflex
The single most common failure mode in deep-learning projects is skipping baselines. A team spends three weeks tuning a transformer on a tabular dataset where a tuned LightGBM model would have hit the same accuracy in twenty minutes. The cost is not just compute — it is the wrong mental model of which knobs matter. Baselines tell you how much room deep learning has to earn.
The shape of the right call
Reach for deep learning when at least two of these are true: the input is raw and high-dimensional, the relationship to the label is non-linear and compositional, you have enough data (or a strong pretrained model), and you can afford the training and serving cost. Otherwise, classical ML is still the adult choice.