模型融合_stacking&blending

本文分享了对stacking堆叠法和blending融合法的个人理解。stacking像是在特征维度扩展,用不同模型获新输入特征;blending则在特征时间维度多次开发特征。还以公司招标项目为例解释stacking,各部门是分类器,老板综合考量,涉及五折交叉验证。

个人理解:
1.stacking堆叠法,更像是在特征维度上扩展,使用不同的模型获得不同的特征,堆在一起获得新的输入特征。
2.blending融合法,更像是在特征的时间维度来多次开发特征,先被一套模型预测,得到的结果,作为另一套模型的输入,一直套娃,得到最终的输出。

stacking,自己的理解
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

可以打一个比方,你是一个公司的老板,现在有一个项目在招标,公司有五个部门,分别是算法,硬件,软件,营销,运营。
假设算法组有五个人,那么组长分工一下,每个人考量这个项目的一部分,各个部分之间没有重叠。组长根据算法组五个人的结果,来总结一下,在算法组看来,是否可以接这个项目。
老板问这个项目该不该接呢?各个部门有自己的判断,有点认为要接,有的认为不要接。最后老板对所有结果综合一下,比如投票。

在这个例子中,五个部门就是五个分类器,老板是最后一个综合考虑的分类器(也叫第二层分类器)。每个部门中,把项目化为成五个小部分,就是五折交叉验证,每个成员根据自己所看的部分来判断,每个部门完成第一次stacking。老板那里完成第二次stacking。

仅仅是自己的理解,可能有些偏颇,欢迎留言讨论。

blending,自己的理解
在这里插入图片描述

### 3.1 Stacking、Blending 和加权平均方法的优缺点对比 #### Stacking Stacking 是一种层次化的集成学习方法,通过训练一个元学习器(Meta-Learner)来组合多个基模型的预测结果。其优点在于可以灵活融合多个不同类型的模型,从而提升整体性能[^1]。例如,在工单分配或设备故障预测任务中,将 LightGBM 和 LSTM 的预测结果作为元学习器的输入特征,可以有效结合树模型与神经网络的优势,提升模型的泛化能力[^3]。 然而,Stacking 的主要缺点是模型复杂度较高,训练和预测的计算成本较大。此外,元学习器的选择和训练数据的划分方式对最终性能影响较大,若处理不当可能导致过拟合[^2]。 #### Blending Blending 是一种简化版的 Stacking,它通过将训练集划分为训练子集和验证子集,使用验证子集上的预测结果训练元学习器。其优点是实现简单、计算效率高,适用于数据量较大的场景[^2]。 Blending 的主要缺点在于它只使用部分训练数据来生成第二层的输入特征,因此可能会丢失部分信息,影响最终的融合效果。此外,Blending 对训练集划分的敏感度较高,容易受到数据分布不均的影响[^1]。 #### 加权平均 加权平均是一种简单但有效的集成方法,通过为每个模型的预测结果赋予不同的权重,然后进行加权求和得到最终预测值。其优点是计算效率高、易于实现,适合在模型差异性不大的情况下使用[^4]。 加权平均的主要缺点是无法捕捉模型之间的非线性关系,且权重的分配对最终性能影响较大。若基模型之间存在较大的性能差异,简单的加权平均可能无法充分发挥每个模型的优势。 ### 3.2 适合模型融合场景的方法选择 在选择集成方法时,需综合考虑任务复杂度、数据规模、模型多样性等因素。对于数据量较大、模型差异显著(如 LightGBM + LSTM)的任务,Stacking 是更优的选择,因为它能够有效融合不同建模范式的长处,提升整体预测精度[^3]。 Blending 更适合计算资源有限、训练效率要求较高的场景,尤其在数据量充足的情况下,可以作为 Stacking 的替代方案。 加权平均则适用于模型性能相近、任务复杂度较低的场景,能够快速实现模型融合并提升预测稳定性[^4]。 例如,在工单分配任务中,若使用 LightGBM 和 LSTM 进行融合,Stacking 能够更好地捕捉特征空间中的复杂关系,从而提升最终的分类准确率[^1]。 ### 示例代码:Stacking 融合 LightGBM 与 LSTM ```python from sklearn.ensemble import RandomForestRegressor import numpy as np # 假设 lgbm_pred 和 lstm_pred 是两个模型在验证集上的预测结果 X_stack = np.column_stack((lgbm_pred, lstm_pred)) y_true = test_labels # 使用随机森林作为元学习器 meta_model = RandomForestRegressor() meta_model.fit(X_stack, y_true) final_pred = meta_model.predict(X_stack) ``` 上述代码展示了如何将 LightGBM 和 LSTM 的预测结果作为输入特征,使用随机森林作为元学习器进行 Stacking 融合,进一步提升预测精度。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值