Gradient boosting or a neural network on tabular data
You have a table of rows and columns and a target. Which model family?
The short answer
Gradient boosting, on anything that genuinely fits in a table. Reach for a network when the data stops being a table, not when the problem sounds important.
Gradient-boosted trees
Good at
- Winning on tabular data — this is still the default result across benchmarks and competitions.
- Mixed types, missing values and unscaled features, with almost no preprocessing.
- Training in minutes on a CPU, so you can iterate on features instead of infrastructure.
- Being robust to uninformative features rather than distracted by them.
- Feature importances and SHAP values that a non-specialist will accept.
Costs you
- Weak at extrapolating beyond the range of the training data — predictions flatten at the edges.
- No natural handling of text, images or audio without separate feature extraction.
- High-cardinality categoricals need care, and target encoding leaks if you do it carelessly.
- Model size grows with the number of trees, and very large ensembles are slow to serve.
- Incremental learning is awkward; retraining is usually the honest answer.
Pick this when: Default. Anything that fits in a dataframe, unless you have a specific reason otherwise.
Neural network
Good at
- Mixed-modality inputs: a table plus free text plus an image in one model.
- Very large datasets, where capacity keeps paying and trees stop improving.
- Learning embeddings for high-cardinality identifiers — users, items, products.
- Sharing a backbone across related tasks, and continuing training on new data.
- Problems with real structure in the inputs: sequences, graphs, spatial layout.
Costs you
- Needs scaling, encoding and imputation decisions that trees make for you.
- More hyperparameters, and the results are more sensitive to them.
- Usually loses to boosting on plain tabular data of moderate size, repeatedly and reproducibly.
- GPU time and a training loop to maintain.
- Harder to explain to the person who has to sign off on the decision it makes.
Pick this when: The inputs are not really tabular — text, images, sequences, or identifiers that want embeddings — or the dataset is very large.