为什么不总是使用集成学习?

机器算法验证 助推 集成学习 装袋
2022-01-30 04:28:34

在我看来,集成学习总是会比仅使用单一学习假设提供更好的预测性能。

那么,为什么我们不一直使用它们呢?

我的猜测可能是因为计算限制?(即便如此,我们使用弱预测器,所以我不知道)。

2个回答

一般来说,它总是表现得更好是不正确的。有几种集成方法,每种方法都有自己的优点/缺点。使用哪一个,然后取决于手头的问题。

例如,如果您的模型具有高方差(它们过度拟合您的数据),那么您可能会从使用 bagging 中受益。如果您有偏差模型,最好将它们与 Boosting 结合使用。也有不同的策略来形成合奏。这个话题太广泛了,无法在一个答案中涵盖它。

但我的观点是:如果你在设置中使用了错误的集成方法,你就不会做得更好。例如,将 Bagging 与有偏见的模型一起使用不会有帮助。

此外,如果您需要在概率环境中工作,集成方法也可能不起作用。众所周知,Boosting(最流行的形式,如 AdaBoost)提供的概率估计很差。也就是说,如果您希望有一个模型可以让您对数据进行推理,而不仅仅是分类,那么使用图形模型可能会更好。

你应该 !如果您指的是模型集合(也称为混合、分段、堆叠)。不幸的是,合奏背后的意义相当模糊。基于集成(随机森林......)的模型本身可能不会比其他模型(线性回归,神经网络)表现更好。

在他的文章:Stacked generalization (1992) 中,David H. Wolpert 说:

结论是,对于几乎任何现实世界的泛化问题,都应该使用某种版本的堆叠泛化来最小化泛化错误率。

直到今天,这仍然是正确的。

但是,这些模型比单个模型更难调整和发布。它们还具有更长的预测时间,因为您可能需要数百个模型的预测。而且,即使他们有更好的预测,准确度的增加也可能不值得麻烦。

在看到关于集成学习的各种问题后,我写了为什么模型阶段工作探索了他们成功的原因。