GBDT推导(林轩田)

第二节林从优化的角度推导了Adaboost,本人不才,没有看懂,可跳过

一、RandomForest Vs AdaBoost-DTree

  • RF随机森林算法:通过bootstrapping有放回的抽样获取不同的训练数据Dt,不同的Dt可同时并行化生成多棵决策树最后将多棵决策树‘一人一票’的方式结合生成G。
  • AdaBoost-DTree:通多重赋权reweight(样本权重Ut)的方式获取不同的训练数据Dt,Ut依赖于上一次的迭代的分类结果,决策树之间存在依赖关系,必须串行生成每一棵决策树。最后每一棵决策树通过权值alphat结合生成G。

https://i-blog.csdnimg.cn/blog_migrate/3a4baa34df462360542268826bb7f7d8.png

  • 在AdaBoost-DTree中,为了不修改原来的模型,数据按照样本权重u的比例大小对样本进行sampling,采样后的数据D中也能体现出样本的权重。
  • 直接使用fully grown tree 训练Dt,会产生autocracy,需要剪枝或使用弱决策树算法

 

 

 

二、从优化的角度看AdaBoost

AdaBoost中的需要更新的权重由上一轮权重决定,由下面的公式推导

带入公式推导一波:

方块t(见林轩田机器学习技法Adaboost)表示的是exp(αt),并将橘色部分记为voting score(G(x)为最终的Adaboost分类器表达式), 可以看出voting score和要更新的权重是成正比的关系。

更换符号发现和SVM的表达公式相似,即求解最大的函数距离

得到SVM和G(x)的关系为

若希望yn越来越大,等价于越来越小,即权重越来越小,Adaboost在循环的过程中本来就拥有使权重越来越小的效果,最终达到增大margin的目的。

林通过指数损失函数,从优化的角度推导了AdaBoost-DTree(没看懂,参考林轩田的机器学习技法GBDT章)

三、GBDT(Gradient Boosting Decision Tree)

结上一节如果优化的损失函数为指数损失函数(exponential error)的话,可以看作Adaboost在这个损失上面一步一步的做最佳化,每一步找出一个最好的h(x)作为下一轮要优化的gt,并找出gt的距离η

延申至任意的损失函数,得到的效果相同。

 

使用GradientBoost对回归问题做优化,此时的损失函数为平方差误差。

将Sn(表示上一次循环得到的数值)替换,在S=Sn处泰勒展开

这里存在一个问题,若想后面一项越来越小,假如Sn-Yn为一个正数,则h越小越好,若没有限制h便会成为无限小。

下降的距离的大小通过η进行调节,所以我们不在意h的大小(只要选取合适的值即可),为了使用拉格朗日公式,使用h^2进行惩罚,推导如下。

抛去常数项,等价于一个对残差解回归的问题,便找到了最好的gt,然后求η,也可以看作是对残差求回归的问题,最终得到alpha。

GBDT的算法:

 

总结:各种方法的对应关系

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值