首页 > 人工智能 > 深度学习 > 选择深度学习、SVM还是随机森林
如果我们处理一个监督学习问题,我的建议是先尝试最简单的假设空间。也就是说,尝试一个线性模型,比如逻辑回归。如果这不能“很好地”工作(即,它没有达到我们之前定义的期望或性能标准),我会继续下一个实验。
我想说,随机森林可能是那种“无忧无虑”的方法——如果机器学习中存在这样的东西的话:没有真正需要调整的超参数(也许除了树的数量;通常,树越多越好)。相反,在支持向量机中有很多旋钮需要调整:选择“正确的”核函数、正则化惩罚、松弛变量……
随机森林和支持向量机都是非参数模型(即,复杂度随着训练样本数量的增加而增长)。因此,与例如广义线性模型相比,训练非参数模型在计算上可能更昂贵。树越多,构建随机森林的成本就越高。此外,在支持向量机中,我们最终可能会有很多支持向量;在最坏的情况下,支持向量的数量与训练集中的样本数量一样多。尽管有多类支持向量机,但多类分类的典型实现是一对多;因此,我们必须为每个类别训练一个支持向量机——相比之下,决策树或随机森林可以开箱即用地处理多个类别。
总结来说,对于从业者而言,随机森林的训练要简单得多;更容易找到一个好的、稳健的模型。随机森林的复杂度随着森林中树的数量以及我们拥有的训练样本数量而增长。在支持向量机中,我们通常需要进行相当多的参数调整,除此之外,计算成本也随着类别数量线性增长。
根据经验,我想说支持向量机非常适合相对较小且异常值较少的数据集。随机森林可能需要更多数据,但它们几乎总能得出一个相当稳健的模型。而深度学习算法……嗯,它们需要“相对”较大的数据集才能很好地工作,而且你还需要基础设施来在合理的时间内训练它们。此外,深度学习算法需要更多的经验:使用深度学习算法设置神经网络比使用现成的分类器(如随机森林和支持向量机)要繁琐得多。另一方面,深度学习在处理图像分类、自然语言处理和语音识别等复杂问题时确实表现出色。另一个优势是你需要担心特征工程的部分更少。再次强调,在实践中,选择哪个分类器实际上取决于你的数据集和问题的总体复杂度——这就是你作为机器学习从业者的经验发挥作用的地方。
如果涉及预测性能,有些情况下支持向量机比随机森林表现更好,反之亦然:
如果你查看 MNIST 基准测试( http://yann.lecun.com/exdb/mnist/ ),深度学习算法也是如此:在这个集合中表现最好的模型是一个由 35 个 ConvNet 组成的委员会,据报道其测试误差为 0.23%;最好的支持向量机模型的测试误差为 0.56%。ConvNet 集成可能达到更好的准确率(为了这个集成,我们假设这些是完全无偏的估计),但毫无疑问,我想说 35 个 ConvNet 委员会的成本要高得多(在计算上)。所以,如果你做这个决定:0.33% 的提升值得吗?在某些情况下,也许值得(例如,在金融领域进行非实时预测),但在其他情况下,可能不值得。
所以,我的实用建议是:

转载声明:本文为转载整理,原文版权归原作者及原站点所有。
原创地址:https://sebastianraschka.com/faq/docs/deeplearn-vs-svm-randomforest.html
原文作者:Sebastian Raschka;如有侵权,请联系管理员删除。