Ensemble

集成学习方法bagging,boosting,stacking

  • Bagging     bootstrap aggregation的简写。

    • 使用场景:model 很复杂,担心会overfit,减低variance.
    • Bagging是有放回的抽样,并且每个自己的样本数量必须和原样本数量一致,允许子集存在重复数据
    • 使用__多数投票__、__求均值__的方式来统计最终分类结果。
  • Random forest
    • bagging of decision tree
    • 决策树做分支的时候,考虑的是所有的属性。而随机森林分支的时候是对随机选出的属性做分类。
    • 样本随机,选择特征随机
    • 示例, 初音形状的分类
  • Boosing ——improving weak classifiers 能够将弱学习器转化为强学习器的一类算法
    • 提升学习是一种机器学习技术,可以用于回归和分类问题。它每一步产生弱预测模型 (如决策树),并加权累加到总模型中
    • Framework of boosting
      • Obtain the first classifier f1( x)
      • Find another function f2( x) to help f1(x) 找出f2和f1互补, f1,f2要非常不同
      • Obtain the second classifier f2(x)
      • f3与f2互补......Finally, combining all the classifiers
    • The classifiers are learned sequentially.
    • Training on different dataset
      • 不同模型在Boosting处理过程中的差异体现在根据效果更改数据这一步。
      • Re-sampling and Re-weighting training data to form a new set
    • Adaboost

      • 找到f2, 思路    
        • u1n,weight 开始一样的。
        • error rate = 分类结果错误 +1 ,乘 u1 , 加起来的总和 , 除以 u1n的总和,normalize
        • f1的 error rate 小于 0.5, 如果大于0.5, 反过来。
        • 权重u2 使得 error rate = 0.5

        计算f2的 u2, 对于每个x  

        权重u 分类错误×d1,分类正确除以d1,

        求d1

        为了方便用一个公式来表示, 加入ln,

        使用ut+1 = ut × exp(正负1×at)表示

        error rate 越小, 权重越大。

      • Adaboost example    三棵树, 使用 weak classifier  decision stump(单层决策树)
      •  现象, training data 的几个weak classifier 的 error rate 变成0, 但是随着树的增加, test error rate 会越来越小。随着error rate 变成0, 还要多增加T进行训练
      • H(x)决策函数, y 和 g(x) 同号说明判断正确,所以g(x)越大越好,对结果影响更大。

        黄色是adaboost 的 upperbound, 可以证明它会随着T increase 越来越小。随着margin的 增加, upperbound越来越小。

    • Gradient Boosting
      • boosting 的general的演算法。
      • 优点是可以任意更改object function,创建不同的boosting方法
      • 目标函数 (object function) = 损失函数 (loss function) = 代价函数 (cost function)
      • 一般的Gradient Boosting

        将损失定义为任意函数的boosting就是Gradient Boosting。
        对于任意损失函数L(y,F(x)),在第m步,

        L(y,F_m(\bf{x})) = L(y,F_{m - 1}(\bf{x}) + \alpha_m \phi(\bf{x};\theta_m))

        直接优化上式是一个很困难的任务,我们只能退而求其次
        这时我们想想梯度下降法求函数极值的过程,考虑x = F_{m - 1}(\bf{x})\Delta x= \alpha_m \phi(\bf{x};\theta_m)回忆梯度下降法,我们每步的迭代方向为负梯度方向,即有

        \alpha_m \phi(\bf{x};\theta_m) =-\frac{\mathrm{d} L(y,F_{m-1}(\bf{x})) }{\mathrm{d F_{m-1}(\bf{x)}}}

        这样我们就只要每次训练θm是得上式想等,就可以进行更新

        F_m(\bf{x}) = F_{m - 1}(\bf{x}) + \alpha_m \phi(\bf{x};\theta_m)

        这就是所谓的每次预测负梯度方向
      • 下面可以略过。。。。。
      •  

  • Stacking
    • Stacking简单理解就是讲几个简单的模型,一般采用将它们进行K折交叉验证输出预测结果,然后将每个模型输出的预测结果合并为新的特征,加上正确的label,并使用新的模型加以训练。第二层会选择简单点的模型, 如logistic regression

                 这个 例子讲的很清楚   https://blog.csdn.net/wstcjf/article/details/77989963

  •  

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值