笔记—集成学习—Stacking

集成学习—Stacking

一、引言

集成学习主要包括Bagging、Boosting和Stacking。本文主要介绍stacking方法。stacking(有时也称为stacked generalization)是一种分层模型集成框架,主要的思想是训练一个模型用于组合(combine)其他各个模型。stacking方法在各大数据挖掘比赛上都很风靡,模型融合之后能够小幅度地提高模型的预测准确度。

二、基本思想

stacking是一种有层次的集成学习方法,通过元分类器(meta-classifier)将多个个体分类模型(individual classification models)组合起来。首先,stacking方法从训练集上训练获得多个个体分类器;然后,将各个分类器的输出(元特征)组合起来,作为新的特征,构建新的训练集;最后,利用新构建的训练集训练元分类器。具体流程如下图:
stacking
训练阶段,若直接用训练个体分类器的训练集来产生元特征,过拟合风险过大。因此,stacking方法使用交叉验证的方式,用个体分类器未使用的样本来产生元分类器的训练集。以5折交叉验证为例,对某一个个体分类器使用交叉验证,将5个作为验证集的部分的输出组合起来作为元特征,具体过程如下图:
在这里插入图片描述
举个例子,假设训练集有10000条数据,测试集有2500条数据,对应上图,

  • 用蓝色的8000条数据训练5个Model1,并分别对剩下的橙色的2000条验证数据,以及绿色的2500条测试数据进行预测,得到5*2000个和5*2500个预测的结果;
  • 将5*2000个验证集的预测结果排成10000*1的矩阵A1,计算5*2500个测试集的预测结果的平均值的到2500*1的矩阵B1;
  • 重复1,2,训练多个不同的Model2、Model3、…、Modelm,得到A1,B1,A2,B2,A3,B3,…,Am,Bm;
  • 将A1,…,Am拼接成10000*m的矩阵作为新的训练集,将B1,…,Bm拼接成2500*m的矩阵作为新的测试集;
  • 用新的训练集训练元分类器,并用训练好的元分类器对新测试集进行预测得到最终结果。

三、算法伪代码

在这里插入图片描述

  • 过程1-4是利用原数据集训练出多个个体分类器;
  • 过程5-8是使用训练出来的个体分类器来得预测的结果,并将这些预测的结果组合,当做元学习器的训练集;
  • 过程9-11是用个体分类器预测的结果训练出元分类器,得到我们最后训练的模型;

参考

  1. Stacking Classifier
  2. 集成学习中的 stacking 以及python实现
  3. 详解stacking过程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值