【集成学习】Stacking

Stacking也是机器学习的一种方法,他和Boost和Bagging的区别是集成的基学习器是异质的,其目的是学习到每个基学习器的优点,然后更好的去做分类或者回归任务。

首先来说它是一个层级的集成学习方法,一般情况下分为两层,利用基学习器学习特征,然后把基学习器的预测值作为第二层的输入,在训练。这样做的目的是为了给第一层预测的结果分配不同的权重,这样让每个基学习器都有其侧重点,充分的利用了每个基学习器的特点。

1、Stacking种的数据如何划分?

  • 将原本的数据集一般进行N折交叉验证

  • 取N-1折进行训练,剩下的一折进行测试

2、stacking原理

3、Stacking的基本框架

我们异质的基学习器假如有M个,每个基学习器都会生成一个新的特征,而测试集在每个基学习器上进行预测也会得到新的特征。然后把新的特征当作输入训练一个新的模型M0,然后将第一阶段预测的特征作为M0的输入,进行预测。以两阶段的Stcking举例说明,第一阶段不仅计算训练集预测的特征,还计算测试集预测的特征;第二阶段把训练集预测的特征用来训练新的模型M0,测试集预测的特征用来测试即可。Stcking体现堆叠的思想主要是在第二阶段,为不同的预测结果学习一个权重,更好的完成分类和回归任务。

preview

 

4、Stacking的5折交叉验证

假如有训练集10000条,测试集是2500条。按照5折交叉验证来操作的话,1/5的用来测试,4/5的用来训练。

用一个model来举例说明,每一个predict的特征向量都是2000*1,因此一个模型新的feature就是2000*5=10000,将这个结果作为输入给次级学习器。训练一个分类器,将Test的特征输入分类器得到最终结果。

在此说明一下,TestData在每一折都要进行测试,最终会得到2500*5,然后进行平均得到2500*1这个维度的测试特征。

如果有T个初级学习器也是如此,将初级学习器的结果当作输入,训练次级学习器,值得一提,如果有T个model的话,那么次级学习器的输入特征就有几个,举例说明:如果有5个初级学习器,那么次级学习器的输入就是10000*5,次级学习器的测试集就是2500*5.

5、Stacking的优缺点

  • 目前性能比较好的算法
  • 自动继承策略可添加正则项有效的对抗过拟合,不需要太多的调参的特征选择
  • 可以将Boost,已经继承过的算法再此集成,达到比较好的效果

 

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值