从零实现机器学习算法(八)Stacking
发布网友
发布时间:2024-09-07 00:25
我来回答
共1个回答
热心网友
时间:2024-10-05 15:45
Stacking是一种模型融合策略,与Blending非常类似。在Stacking的第一层,对单个模型通过交叉验证产生预测结果,并将所有结果拼接作为新特征。第二层可以采用分类器,或者使用传统的融合方式如平均、投票或加权。Stacking的结构如下图所示:
Stacking模型包括两大部分:第一层模型和分类规则。第一层模型在交叉验证过程中,将训练集分为多个子集,通过每一种学习方法分别在子集上训练模型,然后对整个训练集进行预测。第一层模型总数等于折数乘以学习方法数,具体代码实现略。第二层分类规则,即第二层模型,负责对第一层预测特征进行建模并分类。常见的融合方式有平均、投票和加权。平均是简单求平均得到结果;投票为少数服从多数;加权则是赋予不同结果不同的权重,权重可通过训练或手动分配。在使用传统融合方式时,注意这并非学习过程,融合操作仅在测试时出现。测试时,预测特征为每个模型预测值的平均值,代码实现见下。
Stacking的主要目标是通过增加模型的泛化能力提升性能,且能通过多层堆叠进一步提高检测效果。本文使用了特定的分类器组合进行实验,并与感知机和Logistic回归进行比较。检测结果显示出Stacking与Blending相当。
相关代码和数据集见本文。
参考文献:
[1] 图解Blending&Stacking
[2] KAGGLE ENSEMBLING GUIDE