Ensemble learning

  • 集成学习(ensemble learning):通过构建并结合多个机器学习器来完成学习任务。
  • 集成学习:1. 得到若干个个体学习器;2.选择一种结合策略,将这些个体学习器集合成一个强学习器。

个体学习器

  1. 所有的个体学习器都是一个种类的,或者说是同质的。
  2. 所有的个体学习器不全是一个种类的,或者说是异质的。
  3. 目前来说,同质个体学习器的应用是最广泛的,一般常说的集成学习的方法都是指的同质个体学习器。而同质个体学习器使用最多的模型是CART决策树和神经网络。

结合策略

  • 同质个体学习器按照个体学习器之间是否存在依赖关系可以分为两类。
  • 第一个是个体学习器之间存在强依赖关系,一系列个体学习器基本都需要串行生成,代表算法是boosting系列算法。
  • 第二个是个体学习器之间不存在强依赖关系,一系列个体学习器可以并行生成,代表算法是bagging和随机森林(Random Forest)系列算法。

Boosting

  • Boosting算法的工作机制是首先从训练集用初始权重训练出一个弱学习器1,根据弱学习的学习误差率表现来更新训练样本的权重,使得之前弱学习器1学习误差率高的训练样本点的权重变高,使得这些误差率高的点在后面的弱学习器2中得到更多的重视。然后基于调整权重后的训练集来训练弱学习器2,如此重复进行,直到弱学习器数达到事先指定的数目T,最终将这T个弱学习器通过集合策略进行整合,得到最终的强学习器。
  • Boosting著名算法主要有AdaBoost算法和提升树(boosting tree)系列算法。提升树系列算法里面应用最广泛的是梯度提升树(Gradient Boosting Tree)。

Bagging

  • 通过T次的随机采样,得到T个采样集,对于这T个采样集,分别独立的训练出T个弱学习器,再对这T个弱学习器通过集合策略来得到最终的强学习器。
  • 随机采样一般采用自助采样法(Bootstrap sampling),即有放回采样,对于m个样本的原始训练集,采样m次得到m个样本(可能有相同)的采样集(T个),训练得到T个不同的弱学习器。
  • 随机森林是bagging的一个特化进阶版,在bagging的样本随机采样基础上,又加上了特征的随机选择。

评价策略

假定得到的T个弱学习器是{ℎ1,ℎ2,…ℎ𝑇}

  1. 平均法 (回归预测)
    对于若干个弱学习器的输出进行平均得到最终的预测输出: H ( x ) = ∑ i = 1 T w i h i ( x ) H(x) = \sum\limits_{i=1}^{T}w_ih_i(x) H(x)=i=1Twihi(x)
    𝑤𝑖是个体学习器ℎ𝑖的权重

  2. 投票法 (分类预测)
    相对多数投票法。T个弱学习器的对样本x的预测结果中,数量最多的类别𝑐𝑖为最终的分类类别。如果不止一个类别获得最高票,则随机选择一个做最终类别。
    绝对多数投票法。在相对多数投票法的基础上,不仅要求获得最高票,还要求票过半数。否则会拒绝预测。
    加权投票法。每个弱学习器的分类票数要乘以一个权重,最终将各个类别的加权票数求和,最大的值对应的类别为最终类别。

  3. 学习法
    对弱学习器的结果做平均或者投票,相对比较简单,但是可能学习误差较大。
    对于学习法,代表方法有blending和stacking。将训练集弱学习器的学习结果作为输入,将训练集的输出作为输出,重新训练一个学习器来得到最终结果。
    ---- Blending:数据划分为训练集和测试集(test_set),其中训练集再次划分为训练集(train_set)和验证集(val_set);在这里插入图片描述
    ----Stacking:将数据划分为训练集和测试集(test_set),对训练集进行划分为K个大小相似的集合,取其中一份作为验证集val_set,其余的为训练集train_set;在这里插入图片描述
    Blending的优点在于:

    1. 比stacking简单(因为不用进行k次的交叉验证来获得stacker feature)

    2. 避开了一个信息泄露问题:generlizers和stacker使用了不一样的数据集

    3. 在团队建模过程中,不需要给队友分享自己的随机种子

    而缺点在于:

    1. 使用了很少的数据(是划分hold-out作为测试集,并非cv)

    2. blender可能会过拟合(其实大概率是第一点导致的)

    3. stacking使用多次的CV会比较稳健

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值