Classical ML is not dead: why gradient-boosted trees still beat deep learning on tabular data

Classical ML is not dead: why gradient-boosted trees still beat deep learning on tabular data

Most of the data that decides whether a business works is tabular: invoices, claims, transactions, sensor readings, building elements, support tickets, patient records. And on that data — the plain two-dimensional tables nobody writes conference papers about — gradient-boosted decision trees still win the majority of realistic tasks. That is not nostalgia and it is not a lack of imagination. It is a structural property of how trees and neural networks carve up a feature space, and it has been measured repeatedly by independent groups on independent benchmarks.

A serious engineer does not choose a model family because it is fashionable. They choose it because they can explain why it wins. So this article does three things: it states the evidence without hand-waving, it explains the mechanism behind the result, and then it draws the boundary precisely — here is where the tree still wins, here is where deep learning genuinely takes over, and here is how to decide for your own table in an afternoon.


The claim, stated plainly

On medium-sized tabular datasets — call it hundreds to tens of thousands of rows, with a mix of numeric and categorical columns — boosted trees (XGBoost, LightGBM, CatBoost) are the strongest default. Not the most exciting default. The strongest one. And this position is defensible because three separate lines of published work arrived at it from different directions.

Then add the survey literature. Borisov et al., "Deep Neural Networks and Tabular Data: A Survey" (arXiv:2110.01889) reviews roughly a decade of work in this space, and its conclusion is the nuanced one that most arguments skip: gradient-boosted trees dominate on medium-sized data, while deep networks show genuine advantages on large datasets and in multimodal settings. That nuance is this article. The headline is "trees win", the useful part is the boundary.

"Why do tree-based models still outperform deep learning on typical tabular data?" — the title of Grinsztajn, Oyallon and Varoquaux, NeurIPS 2022. Years later, the best answer the field has is still inductive bias, not hyperparameter search.

Why: the smoothness bias

A decision tree splits on one feature at a time. Every split is a threshold on a single column, so the model's decision region is a set of axis-aligned boxes in feature space. That geometry matches how tabular data is actually produced. A rule like "deny the claim if the amount exceeds this band and the policy was opened less than ninety days ago" is two thresholds on two columns. Trees represent it with two splits. This is not a coincidence — business rules and physical constraints are written as thresholds on individual variables, because that is how humans reason about them.

A multilayer perceptron does something fundamentally different. It learns linear combinations of all features at once and then applies nonlinearities to those combinations. That makes the network remarkably good at smooth, shared, distributed structure — and it makes it rotationally invariant: a linear combination of an informative feature and an uninformative feature is still a perfectly usable input for the first layer. The cost is that an axis-aligned boundary which a tree expresses with three splits may require many layers and far more parameters for a network to approximate, because the network has to construct the alignment first.

Grinsztajn and co-authors frame this as an inductive-bias mismatch, and the consequence is measurable: neural networks are biased toward smooth solutions, and tabular targets frequently are not smooth. The textbook illustration is the XOR-style target, where the label depends on a threshold of one variable combined with a threshold of another. A tree nails it with a handful of splits. An MLP needs substantially more capacity to represent the same function, because the true boundary has nothing to do with any linear combination of the inputs.

This is not a failure of deep learning. It is deep learning doing exactly what its architecture was designed to do — exploit smoothness and shared structure — in a setting where that design assumption partially fails to hold. Reading it as "neural nets are bad at tables" misses the point and produces the wrong decision. The correct reading is: the assumption is what you are buying, and here it does not pay.

Why: uninformative features and heterogeneous columns

Two further mechanisms from the same body of work matter more in day-to-day practice than the smoothness argument, because they are the ones you can feel immediately.

The operational reasons that never make it into the abstract

The modelling argument is only half of the story. The other half is that a model which is marginally more accurate but harder to run is frequently the wrong model to ship.

  1. Training time and hardware. Boosted trees train on CPU with well-optimised histogram splitting, and they train fast. A neural network usually wants a GPU to be practical at any real scale; a tree ensemble is happy on the same machine that runs your ETL. For a model that gets retrained nightly, or on every data refresh, that difference outranks a fraction of a point in AUC.
  2. Tuning effort. Gradient boosting with sane defaults is remarkably good out of the box. Shwartz-Ziv and Armon explicitly noted that XGBoost beat the deep models even without hyperparameter tuning. A neural model, by contrast, arrives with a learning rate, a schedule, a batch size, a width, a depth, a dropout rate, and an optimiser — and its performance is sensitive to all of them.
  3. Missing values and outliers. Modern GBDT implementations handle missing values natively and are robust to outliers because their splits are rank-based thresholds. An MLP needs imputation, and imputation is a modelling choice you then have to defend to whoever owns the data.
  4. Interpretability and governance. Feature importance, SHAP values, partial dependence, and — most important of all — a human-readable trace of which features drove a specific prediction. If your model has to be explained to a risk team, a regulator, or a client, the tree hands you the explanation. That is not a soft benefit. In regulated domains it decides which model is permitted to ship.
  5. Deployment surface. A boosted ensemble compiles to a small artifact and scores in a few milliseconds on a single core, which means it can live inside the application or inside the analytics engine rather than behind a dedicated inference service. Fewer moving parts, fewer failure modes, one less thing to page someone about at 3am.

The exceptions: where deep learning genuinely wins

If trees always won, this would not be an engineering decision — it would be a rule. They do not. The published literature and my own experience agree closely on where the boundary runs, and it runs in five places.

The new twist: tabular foundation models

The most interesting recent development is that the deep-learning side largely stopped trying to beat the tree with a better architecture and attacked the problem from a different direction: pre-training. TabPFN (Hollmann et al., arXiv:2207.01848) is a transformer pre-trained on synthetic tabular tasks that then classifies a new small table in a single forward pass — with no task-specific training at all. The authors positioned it for small tables, on the order of a thousand rows, and the v2 line extended the approach to larger and more realistic tables; that successor work was published in Nature in 2025.

This is the right kind of disruption, because it attacks the actual weakness of neural methods on tabular data. They were always data-hungry and labour-intensive to tune. A pre-trained prior removes both the hunger and most of the tuning: you hand it the table and it answers. If tabular foundation models keep improving, they are the thing that will displace the "trees win" default — not yet, but that is the direction of travel. The honest reading in 2026 is that gradient boosting is still the incumbent default and that the foundation-model line is the credible challenger. Anyone claiming the default has already flipped is reading announcements instead of benchmarks.

A decision framework you can run in an afternoon

Here is the sequence I actually use. It takes half a day, not a quarter, and it is deliberately biased toward shipping something.

  1. Build the baseline first, and make it a real one. LightGBM or CatBoost with sensible defaults, a proper train/validation split that respects time if the data is temporal, and a metric that matches the business decision rather than a metric that is easy to compute. Do not skip this step. The baseline is the number every later effort has to beat, and in my experience it is far harder to beat than people expect.
  2. Fix the data before you fix the model. Row count, feature count, missingness per column, cardinality per categorical, and the time structure of the split. A large share of "deep learning is better" results in practice turn out to be "we cleaned the data carefully while we were building the neural model". Make the cleaning part of both experiments, or the comparison is meaningless.
  3. Ask the four boundary questions. Is the table large and growing into the hundreds of thousands of rows? Are there non-tabular inputs in the same pipeline? Are the categoricals high-cardinality enough to want embeddings? Is the row actually a sequence for an entity? Any "yes" moves you toward neural methods.
  4. If all four answers are no, stop. Ship the tree, spend the remaining time on feature engineering and on the data pipeline, and leave the architecture debate for a project that needs it. In tabular work, feature engineering still moves performance more than architecture does — the least glamorous and highest-return part of the job.
  5. If one or more answers are yes, build the neural model and compare it against the baseline — not against the previous neural model. Then, before shipping, run the operational checklist: training time per refresh, artifact size, latency budget, and whether you can explain an individual prediction to the person who has to defend it.
  6. Consider the ensemble. Shwartz-Ziv and Armon found that combining the two families can improve on either alone. When the tree is half a point behind and the network is half a point ahead, a stacked or averaged model can be the real winner — at the cost of running and monitoring two systems. That trade is sometimes correct and always worth stating out loud.

What this looks like on a real stack

On the kmail.at stack, tabular work rarely starts in a notebook. It starts in the query engine. The analytics layer already runs DuckDB over Parquet columns, which means training features and inference-time features can come from the same SQL. That single-source discipline removes the most common cause of a good tree model underperforming in production: train/serve skew. The model was fine; the features it saw at inference time were built by a different code path.

Building data follows the same logic. A BIM model is not a drawing; it is a structured record of elements with properties, and once that record lands in a table — element type, level, material, area, cost, maintenance interval — the prediction tasks are classical ones: cost regression, defect classification, anomaly detection on operational readings. Those are boosted-tree problems with explainability requirements attached, because a facility manager asking "why was this flagged?" needs an answer, not an embedding vector. The same holds for the agentic systems: when an agent needs a cheap, explainable, deterministic judgement call over structured facts — is this claim anomalous, is this record inconsistent, does this specification contradict that schedule — a tree is often the right tool behind the tool, with the language model handling the reasoning and the interface.

The pattern that matters is not "use trees". It is that the model sits at the end of a pipeline, and the pipeline around it — feature definitions, retraining cadence, monitoring, explanation surface — decides whether the model is useful. A marginally worse model in a well-instrumented pipeline beats a better model in a fragile one, every time.

How to benchmark honestly

The tabular-vs-deep literature is easy to read selectively in either direction, so if you run the comparison yourself, hold yourself to a few rules.

The bottom line

Gradient-boosted trees are the correct default for tabular data in 2026, and the reason is inductive bias, not inertia: axis-aligned splits, implicit feature selection, native handling of mixed types and missing values, a CPU-friendly training loop, and an explanation surface you can hand to a reviewer. Deep learning takes over exactly where its assumptions start to hold: large tables, multimodal rows, high-cardinality embeddings, sequences, and shared multi-task representations. Tabular foundation models are the credible challenger to that default, and they are not yet the default.

So the real decision is not "classical or modern". It is whether your data is shaped like a spreadsheet or shaped like a sequence or a perception problem. Spreadsheets get boosted trees. Everything else gets a neural network, a foundation model, or both. Get that call right and most of the architecture debate disappears — which is the point. The architecture was never the hard part; the shape of the data was.

Pick the model that matches the shape of your data, not the shape of the current hype cycle. On tables, that answer has been stable for years — and the interesting part is knowing exactly when it stops being true.

Sources

Where this article states a number, it is a scope or a claim taken from the cited paper (for example TabPFN's small-table regime). Where it describes practice — tuning effort, deployment cost, the shape of a real pipeline — it is labelled as practice and drawn from hands-on work rather than from a measurement.