决策树何时表现优于神经网络?

数据挖掘 机器学习 Python 神经网络 决策树
2021-10-08 08:50:56

我正在尝试不同的建模方法,包括 KNN、决策树、神经网络和 SVN,并尝试拟合我的数据以查看哪种方法效果最好。令我惊讶的是,决策树在训练准确度为 1.0 和测试准确度为 0.5 时效果最佳。神经网络,我相信无论什么训练精度为 0.92 和测试精度为 0.42,它总是表现最好,比决策树分类器低 8%。

有人可以解释与决策树等建模技术相比,神经网络可能具有低准确性的情况/案例。我曾尝试使用不同配置的神经网络,例如:

1 hidden layer and 1 neuron : Train Accuracy 34% Test Accuracy 42%
7 hidden layers and 5 neurons in each layer: Train Accuracy 79% Test Accuracy 42%
1 hidden layer and 100 neurons: Train Accuracy 34% and Test Accuracy 35%

但不是在一个案例中,我发现神经网络的决策树测试准确率超过了 50%。

1个回答

以我的经验,神经网络有几个超参数(层数、每层神经元、激活函数、优化器、正则化器等),并且很难为每个任务找到最佳配置。事实上,在大多数情况下,甚至不值得尝试找到最佳配置,因为其他分类器在使用默认超参数的情况下可以胜过神经网络。此外,NN 需要谨慎,因为它们容易过度拟合。

对于处理结构化数据的大多数任务,我发现基于树的算法(尤其是增强算法)优于 NN。

一些 NN 架构是最先进的任务,其中我们有大量非结构化数据(例如,用于图像相关任务的 CNN)。

最后,我想说的是,没有绝对的(例如,SVM 将永远胜过 DT)。沿着这些思路还有一个定理:没有免费的午餐定理