集成学习方法涉及结合来自多个贡献模型的预测。
然而,并非所有使用多个机器学习模型的技术都是集成学习算法。
将预测问题划分为子问题是常见的做法。例如,有些问题自然地可以分解为独立但相关的子问题,并且可以为每个子问题准备一个机器学习模型。目前尚不清楚这些是否代表集成学习的例子,尽管我们可能会将这些方法与集成方法区分开来,因为贡献的集成成员无法(即使是微弱地)为整体预测问题提供解决方案。
在本教程中,您将了解用于机器学习的多模型技术及其与集成学习的关系。
完成本教程后,您将了解:
- 多模型机器学习指的是以某种方式与集成学习非常相似地使用多个模型的技术。
- 在多类别分类和多输出回归中使用多个模型与集成方法的不同之处在于,没有一个贡献成员能够单独解决问题。
- 专家混合模型可能被视为真正的集成方法,尽管混合机器学习模型可能不是集成学习方法。
通过我的新书《使用Python的集成学习算法》来启动您的项目,其中包括逐步教程和所有示例的Python源代码文件。
让我们开始吧。

多模型机器学习简介
图片由Tobias Begemann提供,保留部分权利。
教程概述
本教程分为五个部分;它们是:
- 多模型技术
- 用于多类别分类的多模型
- 用于多输出回归的多模型
- 多专家模型
- 由多个模型构建的混合模型
多模型技术
集成学习关注的是结合两个或更多模型预测的方法。
我们可以根据以下两个特性来将模型归类为集成学习技术:
- 由两个或更多模型组成。
- 预测结果是组合的。
我们可能还会建议,集成模型的目标是提高预测结果,使其优于任何单一贡献成员。尽管一个次要目标可能是提高模型的稳定性,例如减少预测或预测误差的方差。
然而,有些模型和模型架构包含集成学习方法的元素,但尚不清楚它们是否可以被视为集成学习。
例如,我们可以将集成学习技术定义为由两个或更多模型组成。问题在于可能存在拥有两个以上模型但并未结合其预测结果的技术。或者,它们可能以意想不到的方式结合其预测结果。
有些方法试图利用多个学习器,但严格来说,它们不能被视为集成组合方法。
— 第89页,《集成方法》,2012年。
由于没有更好的名称,我们将这些方法称为“多模型技术”,以帮助将它们与集成学习方法区分开来。然而,正如我们将看到的,这两种机器学习方法之间的界限并不清晰。
- 多模型技术:由多个模型组成并结合了这些技术,但可能不被视为集成学习的机器学习算法。
因此,审查和探索处于集成学习边缘的多模型技术非常重要,这既有助于更好地理解集成学习,又可以借鉴相关思想来改进我们创建的集成学习模型。
有些预测建模问题,其问题结构本身可能暗示使用多个模型。
通常,这些问题可以自然地划分为子问题。这并不意味着将问题划分为子问题是给定示例的最佳解决方案;它仅仅意味着问题本身易于分解。
两个例子是多类别分类和多输出回归。
想开始学习集成学习吗?
立即参加我为期7天的免费电子邮件速成课程(附示例代码)。
点击注册,同时获得该课程的免费PDF电子书版本。
用于多类别分类的多模型
分类问题涉及将类别标签分配给输入示例。
二元分类任务是指具有两个类别的任务。对每个示例做出一个决策,将其分配给一个类别或另一个类别。如果使用概率建模,则预测该示例属于一个类别的单一概率,其中反之则是属于第二个类别的概率,这被称为二项概率分布。
两个以上的类别可能会带来挑战。为两个类别设计的技术可以扩展到多个类别,有时,这很简单。
- 多类别分类:将多个类别标签中的一个分配给给定的输入示例。
或者,问题可以自然地划分为多个二元分类任务。
有很多方法可以实现这一点。
例如,可以将类别分组为多个“一对多”预测问题。然后可以为每个子问题拟合一个模型,并且通常对每个模型使用相同的算法类型。当需要对新示例进行预测时,响应比其他模型更强的模型可以分配预测。这被称为“一对多”(OvR)或“一对所有”(OvA)方法。
- OvR:一种将多类别分类问题分解为每个类别一个二元分类问题的技术。
多类别分类问题可以划分为多对类别,并为每对拟合一个模型。同样,可以从响应更强的模型中选择新示例的预测。这被称为“一对一”(OvO)。
- OvR:一种将多类别分类问题分解为每对类别一个二元分类问题的技术。
有关“一对多”和“一对一”分类的更多信息,请参阅教程:
这种将多类别分类问题划分为多个二元分类问题的方法可以推广。每个类别可以映射到具有任意长度的唯一二元字符串。然后,可以训练一个分类器来预测比特字符串中的每个比特,从而允许使用任意数量的分类器。
然后可以将比特字符串映射到最接近的类别标签。额外的比特充当纠错码,在某些情况下比简单的OvR和OvO方法提高了该方法的性能。这种方法被称为纠错输出码(Error-Correcting Output Codes,ECOC)。
- ECOC:一种将多类别分类问题分解为任意数量的二元分类问题的技术。
有关此方法的更多信息,请参阅教程:
在这些情况下,都使用了多个模型,就像集成方法一样。预测结果也像集成方法一样进行组合,尽管是采用“赢者通吃”的方式,而不是投票或加权求和。从技术上讲,这是一种组合方法,但与大多数典型的集成学习方法不同。
与集成学习不同,这些技术旨在探索预测问题的自然分解,并利用可能不易扩展到多个类别的二元分类问题。
而集成学习不关注开启新功能,通常只专注于提高预测性能,使其优于贡献模型。对于OvR、OvR和ECOC等技术,根据定义,贡献模型不能单独用于解决预测问题。
用于多输出回归的多模型
回归问题涉及根据输入示例预测一个数值。
通常,会预测一个单一的输出值。然而,有些回归问题需要为每个输入示例预测多个数值。这些问题被称为多输出回归问题。
- 多输出回归:根据输入预测两个或更多数值输出。
可以开发模型一次预测所有目标值,尽管多输出回归问题是另一个可以自然地分解为子问题的问题示例。
就像前一节中的二元分类一样,大多数用于回归预测建模的技术都是为了预测单个值而设计的。预测多个值可能会带来问题,需要对技术进行修改。有些技术无法合理地修改以适用于多个值。
一种方法是为多输出回归问题中的每个目标值开发一个单独的回归模型。通常,对每个模型使用相同的算法类型。例如,具有三个目标值的三输出回归将涉及拟合三个模型,每个目标一个。
当需要预测时,相同的输入模式被提供给每个模型,并预测每个模型的特定目标,它们共同代表了该方法的向量输出。
- 多输出回归:一种技术,其中对多输出回归问题中的每个目标使用一个回归模型。
另一种相关的方法是创建回归模型的顺序链。不同之处在于,第一个模型的输出预测第一个输出目标值,但该值被用作链中第二个模型的输入的一部分,以预测第二个输出目标值,依此类推。
因此,该链在回归模型之间引入了线性依赖关系,允许链中后续模型的输出以链中先前模型的输出为条件。
- 回归链:一种技术,其中使用回归模型的顺序链来预测多输出回归问题中的每个目标,链中较晚的模型使用链中较早模型预测的值。
有关多输出回归的更多信息,请参阅教程:
在每种情况下,都使用了多个回归模型,就像集成方法一样。
与集成方法可能不同的是,每个模型所做的预测并非直接组合。然而,我们可以将“组合预测”的定义延伸到涵盖这种方法。例如,在多输出回归模型中,预测结果是连接起来的;在链式回归中,则是通过条件方法间接组合的。
与集成学习方法的关键区别在于,没有任何一个贡献的集成成员能够单独解决预测问题。只有通过组合所有成员的预测才能获得解决方案。
多专家模型
到目前为止,我们已经根据预测内容的结构将问题划分为子任务。
还有一些问题可以根据输入数据自然地划分为子问题。这可能简单地是输入特征空间的划分,或者更复杂一些,例如将图像划分为前景和背景,并为每个部分开发一个模型。
神经网络领域中更普遍的这种方法被称为专家混合模型(MoE)。
该方法首先将学习任务划分为子任务,为每个子任务开发一个专家模型,使用一个门控模型来决定或学习为每个示例使用哪个专家,然后将专家和门控模型的输出汇集在一起以进行最终预测。
- MoE:一种技术,为每个子任务开发一个专家模型,并学习在对特定示例进行预测时对每个专家的信任程度。
有关专家混合模型的更多信息,请参阅教程:
MoE 的两个方面使其方法独一无二。首先是对输入特征空间的明确划分,其次是使用门控网络或门控模型来学习在每种情况下(例如,每个输入案例)信任哪个专家。
与之前多类别分类和多输出回归将目标分解为子问题的例子不同,专家混合模型中的贡献成员能够(至少部分地或在一定程度上)解决整个问题。尽管专家可能未针对特定输入进行定制,但仍可用于对其专业领域之外的事物进行预测。
此外,与之前回顾的方法不同,专家混合模型还使用加权和(尽管由门控网络衡量)结合了所有贡献成员的预测。
因此,它更接近于更熟悉的集成学习技术,例如堆叠泛化(stacking)。
由多个模型构建的混合模型
另一种涉及使用多个模型且与集成学习 loosely 相关的机器学习类型是混合模型。
混合模型是那些明确组合两个或更多模型的模型。因此,关于什么构成混合模型以及什么不构成混合模型的定义可能很模糊。
- 混合模型:以某种方式组合两个或更多不同机器学习模型的技术。
例如,一个自动编码器神经网络学习如何将输入模式压缩到瓶颈层,然后将瓶颈层的输出馈送到另一个模型,例如支持向量机,这将被视为一个混合机器学习模型。
这个例子有两个机器学习模型,一个神经网络和一个支持向量机。碰巧这些模型是线性堆叠的,一个接一个地形成一个管道,而管道中的最后一个模型进行预测。
考虑一种集成学习方法,它具有多个不同类型的贡献集成成员(例如,逻辑回归和支持向量机),并使用投票来平均它们的预测。根据更广泛的定义,这种集成方法也可以被视为一种混合机器学习模型。
也许集成学习与混合机器学习之间的主要区别在于,混合模型需要使用不同类型的模型。而在集成学习中,集成模型的贡献成员可以是任何类型。
此外,混合机器学习更有可能将一个或多个模型嫁接到另一个基础模型上,这与我们在集成学习中拟合独立模型并组合其预测结果大相径庭。
进一步阅读
如果您想深入了解,本节提供了更多关于该主题的资源。
相关教程
书籍
- 使用集成方法进行模式分类, 2010.
- 集成方法, 2012.
- 集成机器学习, 2012.
总结
在本教程中,您学习了机器学习中的多模型技术及其与集成学习的关系。
具体来说,你学到了:
- 多模型机器学习指的是以某种方式与集成学习非常相似地使用多个模型的技术。
- 在多类别分类和多输出回归中使用多个模型与集成方法的不同之处在于,没有一个贡献成员能够单独解决问题。
- 专家混合模型可能被视为真正的集成方法,尽管混合机器学习模型可能不是集成学习方法。
你有什么问题吗?
在下面的评论中提出你的问题,我会尽力回答。
我想开发一个用于入侵检测系统的混合模型。我需要关于如何选择要使用的算法的建议。
也许这会有帮助。
https://machinelearning.org.cn/faq/single-faq/what-algorithm-config-should-i-use
是否可以将两种不同的模型组合起来作为集成模型,例如
1. 分类器1在图像上训练,分类器2在音频信号上训练,我们通过最终分类器对两者的输出进行集成。
你好,Amin……你可能会发现以下内容很有趣
https://machinelearning.org.cn/ensemble-machine-learning-with-python-7-day-mini-course/
我正在处理信用风险建模,使用不同类型的数据,但我对同一人群有两部分子人群,一部分有财务信息,另一部分没有。我如何使用多模型来评估我人群中个体的违约概率。谢谢
你好,Nash……你可能会发现以下内容很有趣
https://towardsdatascience.com/a-machine-learning-approach-to-credit-risk-assessment-ba8eda1cd11f