I've been working with the Adult Census Income dataset from UCI http://archive.ics.uci.edu/ml/datasets/adult

I've created two different models, one using a gradient boosted classifier with sklearn, and one with a neural net using Keras/Tensorflow.

So I'm not interested in code hints or anything, but I have a general question about machine learning-I have a significantly higher accuracy using the gradient boosted classifier than I do with the neural net.

In general, is it possible for my (or any, really) neural net to reach the same accuracy as any other kind of supervised learning? Does it just take a lot of hard work and elbow grease to tune the neural net well enough? I'm working with the same dataset, using the same feature engineering for both the NN and the gradient boosted classifier.


Generally speak, no. Deep learning models struggle to compete when it comes to tabular data.

If we head over to kaggle were people compete to build the best model we find that usually the best performing non-ensemble models for this kind of data are gradient boosting trees. More specifically it tends to be either XGBoost or more often now days it is LightGBM that performs best. Both are highly optimized implementations of gradient boosting trees.

Feature engineering and parameter tuning are both important to get extra performance. But the gap does not shrink since you would get the same improvements if you did it on a gradient boosting model instead.

Actually other models tend to gain more from feature engineering than neural networks since one of the strengths of neural networks is that they perform a sort of automatic feature engineering when they are trained.

Neural networks usually shine in the domain of unstructured data such as text and images.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.