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.

The other decisions