梯度提升(gradient boosting)算法
2015-07-28 11:21
513 查看
算法:
输入:训练数据集 T={(x1,y1),(x2,y2),⋯,(xN,yN)},xi∈Rn,yi∈R;损失函数L(y,f(x));输出:回归树 f^(x) .
(1) 初始化f0(x)=argminc∑i=1NL(yi,c) (2) 对 m=1,2,⋯,M
(a) 对 i=1,2,⋯,N,计算rmi=−[∂L(yi,f(xi))∂f(xi)]f(x)=fm−1(x) (b) 拟合残差 rmi 学习一个回归树,得到第 m 棵树的叶结点区域 Rmj,j=1,2,⋯,J
(c) 对 j=1,2,⋯,J,计算cmj=argminc∑xi∈RmjL(yi,fm−1(xi)+c) (d) 更新fm(x)=fm−1(x)+∑j=1JcmjI(x∈Rmj) (3) 得到回归树f^(x)=fM(x)=∑m=1M∑j=1JcmjI(x∈Rmj)
思路说明:
算法第 1 步初始化,估计使损失函数极小化的常数值,它是只有一个根结点的树。第 2(a) 步计算损失函数的负梯度在当前模型的值,将它作为残差的估计。对于平方损失函数,他就是通常所说的残差;对于一般损失函数,它就是残差的近似值。第 2(b) 步估计回归树叶结点区域,以拟合残差的近似值。第 2(c) 步利用线性搜索估计叶结点区域的值,是损失函数极小化。第 2(d) 步更新回归树。第 (3) 步得到输出的最终模型 f^(x) .相关文章推荐
- window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
- iOS开发之AsyncSocket使用教程(刚刚)
- SO_REUSEADDR
- uboot启动完成后对网络环境的配置
- android————AlertDialog,ProGressDialog
- iOS中几种数据持久化方案
- POP介绍与使用实践(快速上手动画)
- 项目:gdlt_custom_number 总结收获和经验
- event source => listener
- HTML textarea的value 问题
- 欢迎使用CSDN-markdown编辑器
- 让双网卡同时工作在内网和外网
- 《Tomcat日志系统详解》
- 读Spring的源代码五:AutoWired是如何实现注入的
- OOP-ECMAScript - 深入理解Javascript
- SQLServer 2008数据库查看死锁、堵塞的SQL语句
- android Notification
- 关于友元
- android 应用获取系统权限
- 一步步优化JVM<一>:概述、方法及需求