01_集成学习(Ensemble Learning)简介

集成学习(Ensemble Learning)简介

集成学习涉及多种技术的组合,这些技术允许称为基础学习者(或有时称为弱学习者)的多个机器学习模型合并其预测,并在给定各自的输入和输出的情况下输出单个最佳预测。集成学习旨在解决偏差和方差问题。通过组合许多模型,我们可以减少整体误差,同时保留各个模型的复杂性。正如我们前面所看到的,每个模型误差都有一定的下限,这与模型的复杂性有关。此外,由于初始条件,超参数和其他因素,我们提到相同的算法可以产生不同的模型。通过组合不同的不同模型,我们可以减少组的预期误差,而每个模型都保持不变。这是由于统计数据,而不是纯粹的学习。为了更好地证明这一点,让我们考虑11个基础学习者的分类,每个学习者的错误分类(错误)概率等于err = 0.15或15%。现在,我们要创建一个简单的集合。我们始终假设大多数基础学习者的输出是正确的答案。假设它们是多种多样的(统计上是不相关的),则大多数错误的可能性为0.26%
01_集成学习(Ensemble Learning)简介

集成方法分为两大类或分类法:生成方法非生成方法。非生成性方法侧重于组合一组预训练模型的预测。这些模型通常彼此独立地训练,并且集成算法指示如何将其预测合并。基本分类器不受整体存在的事实的影响。

两种主要的非生成方法:投票(Voting)和堆叠(Stacking)。投票是指允许模型投票以产生单个答案的技术,类似于个人在全国大选中的投票方式。最受欢迎(投票最多)的答案被选为获胜者。另一方面,]利用模型(元学习器)的方法,该模型学习如何最佳地组合基础学习者的预测。尽管堆叠需要生成新模型,但它不会影响基础学习器,因此这是一种非生成方法。

而生成方法能够生成并影响他们使用的基础学习器。他们可以调整他们的学习算法或用于训练他们的数据集,以确保多样性和高模型性能。此外,一些算法可以在模型中引入随机性,以进一步加强多样性。有三种主要的生成方法:套袋(Bagging),提升(Boosting)和随机森林 (Random Forest)。

套袋旨在减少差异。装袋算法对训练数据集的实例进行重新采样,从而创建了许多源自同一数据集的单独且多样化的数据集。之后,在每个采样的数据集上训练一个单独的模型,从而迫使集合模型之间发生差异。提升是一种主要针对偏向模型的技术。它的主要思想是顺序生成模型,以便每个新模型都能解决先前模型中固有的偏差。因此,通过迭代地校正先前的错误,最终的合奏具有明显更低的偏差。Random Forests与装袋相似,因为它从训练数据集中重新采样。它不对实例进行采样,而是对特征进行采样,从而创建了更加多样化的树,因为在许多树中可能缺少与目标高度相关的特征。

尽管集成学习可以大大提高机器学习模型的性能,但这是有代价的。正确实施它存在困难和弊端通过采用大量模型,可解释性大大降低。例如,单个决策树可以通过简单地遵循在每个节点上做出的决策来轻松解释它是如何产生预测的。另一方面,很难解释为什么一千棵树的组合预测单个值。而且,根据集成方法,可能需要比预测过程本身更多的解释。集成方法如何以及为什么选择训练这些特定模型。为什么不选择训练其他模型?为什么不选择训练更多模型?当将模型的结果呈现给听众,尤其是技术水平不是很高的听众时,更简单但更容易解释的模型可能是更好的解决方案。

集成的另一个缺点是它们带来的计算成本。训练单个神经网络在计算上是昂贵的。训练其中的1000个需要1000倍的计算资源。此外,某些方法本质上是顺序的。这意味着不可能利用分布式计算的功能。相反,必须在以前的模型完成后训练每个新模型。除了增加的计算成本外,这还对模型的开发过程施加了时间损失。计算成本不仅阻碍了开发过程;当集成算法投入生产时,推理时间也会受到影响。如果集合包含1,000个模型,则必须为所有这些模型提供新数据,产生预测,然后必须合并这些预测才能产生集合输出。在对延迟敏感的设置(金融交易所,实时系统等)中,期望的执行时间为毫秒级,因此,增加几微秒的延迟可能会产生巨大的差异。

最后,组成整体的模型必须具有某些特征。从许多相同的模型创建任何集合是没有意义的。生成方法可能会产生自己的模型,但是分析人员通常会选择使用的算法及其初始超参数。此外,模型可实现的多样性取决于许多因素,例如数据集的大小和质量以及学习算法本身。行为与数据生成过程相似的单个模型通常在准确性和延迟方面都胜过任何集成。