1 对决策树使用adaboost

对决策树使用adaboost时,有以下几个问题:

(1)adaboost每次更新的样本权重如何应用到决策树中?

  由于我们不知道决策树的err目标是什么,因此通常的方法是根据权重对样本采样,然后给决策树训练,这样我们不需要修改决策树算法本身,样本的权重信息就传进去了。

(2)如果处理某个决策树的ε达到0的情况?

  达到0时,相应的投票数变为无穷大,因此我们需要对树的强度做限制,使得ε不会为0。通常简单的做法是限制树的高度。

  特别的,当树的高度被限制为1时,且不纯度定义为二分类错误时,decision Tree等效为decision stump:
  

因此adaboost-Dtree就是:

2 深入看Adaboost

Adaboost是一个特殊的gradient boosting,它有自己的损失函数叫做errADA:

它也是01err的一个上界。

把adaboost写成gradient boosting的形式:

3 Gradient Boosting

gradient Boosting是Adaboost的延伸。

已知前t-1轮的子模型和投票,在第t轮,选取合适的η和h(x)使得加上该轮后的总模型的损失函数最小,这就是gradient boosting:

如果这里的err是平方误差,有如下推导:

对h的大小做限制,后续用η控制大小,这里限制的方法是加一个平方项作惩罚项:

可以看出,这里是最小化平方误差,也就是在残差(s-y)上做回归。这里我们用回归树来做。

得到了h之后,接下来是选择合适的η:

也就是相当于对于残差和gt转换过的特征做单变量线性回归。

因此,我们的GBDT算法流程如下:

最新文章

  1. Delphi 获取时间的年月日
  2. Angular-ngtable联动全选
  3. WebApi 通过类名获取类并实例化
  4. nios II--实验4——按键中断硬件部分
  5. dictionary 添加数据
  6. SSH框架总结(框架分析+环境搭建+实例源码下载) 《转》
  7. ML 05、分类、标注与回归
  8. BZOJ 4723 Flappy Bird
  9. WPF 之 设置Dialog的父窗体
  10. 【学习笔记】【C语言】关系运算符
  11. progressbar样式
  12. ajax跨域请求的方案
  13. 来自后端的突袭? --浅尝最新开源的C# Web引擎 Blazor
  14. IDEA 远程调试 Tomcat 和 Debugger
  15. 洛谷 P1123 取数游戏
  16. 使用jquery提交FormData数据
  17. qt5 交叉编译
  18. (转)typedef和define的详细区别
  19. 没有过的题QAQ
  20. Thunder——爱阅app(测评人:方铭)

热门文章

  1. ThreadGroup详细讲解
  2. 洛谷P1129 [ZJOI2007]矩阵游戏 题解
  3. canvas动画:气泡上升效果
  4. 高德网络定位之“移动WiFi识别”
  5. [剑指offer] 40. 数组中只出现一次的数字
  6. pyqt 主程序运行中处理其他事件(多线程的一种代替方式)
  7. SPC 数据分析工具
  8. Java面试题 从源码角度分析HashSet实现原理?
  9. Envoy 源码分析--LDS
  10. 第一次使用cnblog,希望大佬们多多指教