ps: (模型融合和集成学习是两个紧密相关但又有所区别的概念。集成学习是一种更广泛的范式,而模型融合可以被视为集成学习的一种特殊形式或策略。)
1.集成学习原理
图1
如图1所示,集成学习是一种通过结合多个机器学习模型的预测来提高整体性能的策略。其核心思想是构建多个基学习器,每个学习器解决同一问题,但各有侧重点或训练子集。这些单独的预测然后被合并,形成最终的预测结果。集成学习的优势在于它能够减少单个模型的偏差和方差,从而提高预测的准确性和鲁棒性。常见的集成方法包括Bagging、Boosting和Stacking如图2所示
图2
ps:(图2转载自:http://t.csdnimg.cn/almgm)
1. 1Bagging
算法:随机森林、极端随机树、Bagging 分类器/回归器
结合策略:多数投票法(分类)、平均法(回归)
集成方式:并行训练多个基学习器
学习模式:同质学习,所有基学习器通常是相同类型的模型
1.2Boosting
算法:AdaBoost、Gradient Boosting、XGBoost、LightGBM、CatBoost
结合策略:加权多数投票法(分类)、加权平均法(回归)
集成方式:序列化训练,每个模型依赖前一个模型的性能
学习模式:同质或异质学习,基学习器可以是不同类型的模
1.3Stacking
算法:Stacking 分类器/回归器、多种基学习器与一种元学习器的组合
结合策略:使用元学习器来结合基学习器的输出
集成方式:分层训练,先训练多个基学习器,再用它们的输出训练元学习器
学习模式:异质学习,基学习器通常为不同类型的模型
综上所述,这三类集成学习方法各有特点,适用于不同的问题类型和数据特征。Bagging 通过降低模型方差提升准确性;Boosting 通过减少偏差提高模型精度;而 Stacking 则通过组合多种模型和策略,进一步优化性能。选择适合的集成方法需要考虑数据集的特点和任务的需求。
2.模型融合
模型融合是机器学习中的一种常用技术,它通过结合多个模型的预测来提高整体性能和鲁棒性。模型融合可以大致分为以下几种类型:
2.1平均融合(Blending)
简单平均融合:对所有模型的预测结果进行算术平均。
加权平均融合:根据预先设定的权重或通过训练得到权重对模型的预测结果进行加权平均。
2. 2堆叠(Stacking)
初级模型融合:多个不同的模型对原始数据进行训练和预测,产生的预测结果作为新的特征集。
次级模型训练:使用初级模型的预测结果作为输入,训练一个次级模型来生成最终的预测。
2.3.提升(Boosting)
AdaBoost:通过迭代地训练模型来关注前一个模型预测错误的样本,每个模型都有一定的权重。
Gradient Boosting:类似于AdaBoost,但是它通过优化损失函数来训练新的模型,每个新模型都试图纠正前一个模型的残差。
2.4装袋(Bagging)
Bootstrap Aggregating (Bagging):通过从训练集中进行有放回抽样来训练多个模型,然后取这些模型的平均预测作为最终结果。
随机森林:Bagging的扩展,它在决策树的基础上增加了特征的随机选择。
2.5投票(Voting)
- 硬投票:每个分类器给出一个预测标签,最终预测结果为多数分类器选择的标签。
- 软投票:每个分类器给出一个概率分布,最终预测结果为平均概率最高的标签。
2.6混合(Mixture of Experts,MoE)
根据不同的输入数据,动态选择不同的专家模型进行预测。
2.7集成深度学习
深度神经网络集成:训练多个深度神经网络,并通过平均或堆叠的方式融合它们的输出。
2.8. 贝叶斯模型平均(Bayesian Model Averaging,BMA)
根据模型的先验概率和表现来加权平均多个模型。
每种模型融合方法都有其适用的场景和优势,通常需要根据具体问题和数据集的特点来选择合适的融合策略。在实际应用中,模型融合可以显著提高预测的准确性和模型的泛化能力。
3论文中的运用
例1
这里用的算法是多种基学习器与一种元学习器的组合。从分层和预测值做特征再训练的思路可以看出这位建模手对stacking的集成方式(分层训练,先训练多个基学习器,再用它们的输出训练元学习器)非常清楚并且运用到了极致,当然了就是在炫技,不过是漂亮的炫技。
例2
同样的,这里用的算法是多种基学习器与一种元学习器的组合,设置了初级模型和次级模型,通过结合多个不同的基学习器来提高整体模型的预测能力。这种方法首先让每个基学习器独立对数据进行训练和预测,然后将这些预测结果作为输入特征,提供给一个元学习器进行最终的训练和预测。这种层级式训练不仅能够有效地整合各个基学习器的优势,减少模型偏差和方差,还能提高模型对于未知数据的泛化能力。Stacking方法尤其适用于那些单一模型难以捕捉全部数据特征的情况,通过组合不同的算法,可以显著提升模型的准确性和鲁棒性。对stacking也是认识清楚,成功炫技。
例3
都是高手,这里采用的是多种基学习器与一种元学习器的组合,通过多层模型的串联训练与预测,有效整合了多个基学习器的优势,提升了模型的泛化能力和预测精度。这种方法不仅利用了不同模型间的差异性来增强整体性能,还通过交叉验证减少了过拟合。stacking回归模型建立的过程叙述的也很清楚流畅。
例3
这里也是多种基学习器与一种元学习器的组合的stacking算法,都是选择最高明的集成学习,都知道stacking结合了Bagging和Boosting的优点嘛。
例4
这里采用的是加权融合的方法,通过加权组合多个模型来尝试提高预测准确性,但这种方法可能过于简化,忽略了模型间潜在的相关性和差异性对融合效果的影响。简单加权平均可能不足以充分利用各个模型的预测优势,有时甚至可能导致性能下降。这里权重的设置是经过调试来的,真的是最优的吗,如果不是模型精度、准确率大幅提高,应该不太适合在这里用吧。
例5
这里也是的,对权重的设置应该足够客观,模型融合本身就是论文的一个亮点,条理清晰,能叙述清楚就是很好了,这一点不如stacking能说的多嘛。
ps:这里我也是大谈特谈不知天高地厚了,其实从整篇论文来看都是强者思维,模型融合虽然是加分点,但也只是一小部分,也要看所有内容的,我只是探索一下模型融合(集成学习)在论文的运用情况,没有捧高踩低的意思。
ps:如有侵权私信删改。