没有合适的资源?快使用搜索试试~ 我知道了~
首页Boosting方法-从AdaBoost到LightGBM
资源详情
资源评论
资源推荐
1、Boosting 方法简介 ............................................ 1
2、前向分步算法................................................. 2
3、AdaBoost 算法 ................................................ 2
3.1 核心思想.................................................. 2
3.2 基本流程.................................................. 2
3.3 从前向分步算法来看 AdaBoost ............................... 3
4、梯度提升决策树(GBDT)......................................... 5
4.1 提升树-boosting tree...................................... 5
4.2 梯度提升-Gradient Boosting................................ 6
4.3 梯度提升决策树(GBDT) ...................................... 7
5、XGBoost 模型 ................................................. 8
5.1 XGBoost 模型基本原理 ...................................... 8
5.2 分裂算法................................................. 10
5.3 XGBoost 与 GBDT 的异同 .................................... 14
6、LightGBM.................................................... 15
6.1 LightGBM 基本原理 ........................................ 15
6.2 LightGBM 的其他特性 ...................................... 17
6.3 LightGBM 与 XGBoost 的不同点 .............................. 20
参考文献....................................................... 21
1、Boosting 方法简介
Boosting 是一族可将弱学习器提升为强学习器的算法。关于 Boosting 的两个
核心问题:
1、在每一轮如何改变训练数据的权值或概率分布?
通过提高那些在前一轮被弱分类器分错样例的权值,减小前一轮分对样本的权
值,而误分的样本在后续受到更多的关注.
2、通过什么方式来组合弱分类器?
通过加法模型将弱分类器进行线性组合,比如 AdaBoost 通过加权多数表决的方
式,即增大错误率小的分类器的权值,同时减小错误率较大的分类器的权值。
而提升树通过拟合残差的方式逐步减小残差,将每一步生成的模型叠加得到最
终模型。
我们常见的 Boosting 算法有
AdaBoost,梯度提升决策树 GBDT,XgBoost 以及
LightGBM
。
2、前向分步算法
前向分步算法是大多 Boosting 算法的一个基础,其基本思想是:从前向后,每
一步只学习一个基函数,逐步逼近优化目标函数式:
3、AdaBoost 算法
3.1 核心思想
AdaBoost 算法的核心思想有两个:
1、在每轮的迭代中,
提高那些前一轮弱分类器分类错误样本的权值,降低那些
被正确分类样本的权值
,这样一来,那些没有得到正确分类的数据,由于其权
值加大后受到后一轮若分类器的更大关注,于是,分类问题被一系列弱分类器
“分而治之”
。
2、采用
加权多数表决
的方法来组合各个弱分类器,具体地说,加大分类误差率
大的弱分类器的权值,使其在表决中起到较大的作用,减小分类误差率大的弱
分类器的权值,使其在表决中起到较小的作用。
3.2 基本流程
下面的流程选自李航博士的《统计学习方法》,我们重点关注的是从前向分步
算法角度 AdaBoost 的推导,因此这里一步带过,感兴趣的可以看原书的相关章
节。
输入:训练数据集! " #
$
% &
$
% #
'
% &
'
% ( ) ) % #
*
% &
*
% 其中#
+
, - . /
0
% &
+
,
1 " 234% 546
输出:最终分类器78-9.
(1)初始化训练数据的权值分布
:
$
" ;
$$
% ( ( ;
$+
% ( ( ( ;
$*
% ;
$+
"
4
<
% = " 4%>% ( ) <
(2) 对 m=1,2,… M
(a)使用具有权值分布:
?
的训练数据集学习,得到基本分类器
7
?
# @ - A 234% 546
(b)计算7
?
# 在训练数据集上的分类误差率
B
?
" C 7
?
#
+
D &
+
" ;
?+
E 7
?
#
+
D &
+
*
+F$
(c)计算7
?
# 的系数
G
?
"
4
>
HIJK
4 3 B
?
B
?
(d)更新训练数据的权值分布
:
?L$
" ;
?L$%$
% ( ( ;
?L$%+
% ( ( ( ;
?L$%*
;
?L$%+
" K
;
?+
M
?
NOPK83G
?
&
+
7
?
#
+
9
这里,M
?
是规范化因子
M
?
" K ;
?+
*
+F$
NOPK83G
?
&
+
7
?
#
+
9
(3)构建基本分类器的线性组合
Q # " G
?
7
?
#
R
+F$
得到最终分类器
7 # " KS=TU8Q # " KS=TU8 G
?
7
?
#
R
+F$
9
3.3 从前向分步算法来看 AdaBoost
AdaBoost 算法是前向分步加法算法的特例,这时,模型是由
基本分类器组成的
加法模型,损失函数是指数函数
。
前向分步算法会逐一学习每个基函数78#9,这一过程与 AdaBoost 算法逐一学习
基本分类器的过程一致。AdaBoost 算法的损失函数为指数函数,其形式如下:
V &% Q # " KNOPKW3&Q # X
假设我们经过了 m-1 轮的迭代,得到:
Q
?Y$
# " K G
$
7
$
# 5 G
'
7
'
# 5 Z 5 G
?Y$
7
?Y$
#
在 m 轮继续迭代得到:
Q
?
# " K Q
?Y$
# 5KG
?
7
?
#
第 m 轮的迭代目标是使前向分步算法得到的系数和基本类器在训练数据集 T 上
的指数损失最小,即:
G
?
% 7
?
# " KG[T\=UK ;
?]
*
+F$
NOPK83G
?
&
+
7
?
#
+
9
其中,;
?]
" NOPKW3&
+
Q
?Y$
#
+
X,咦,是不是感觉跟之前见过的不太一样?哈
哈,对的,是有一点不一样,没有进行规范化处理,不过其他是一样的,因
为:
;
?]
" NOP 3&
+
Q
?Y$
#
+
" NOP 3G
?Y$
&
+
7
?Y$
#
+
^ NOP 3G
?Y'
&
+
7
?Y'
#
+
^ (
^ NOP 3G
$
&
+
7
$
#
+
对于上面的式子,我们首先来求解7
^
# ,对任意的G _ `,K7
?
^
# 由下式得到:
7
?
^
# " abJcde ;
?]
*
+F$
E87 #
+
D &
+
9
此分类器7
?
^
# 就是 AdaBoost 算法的基本分类器7
?
# ,因为它是使第 m 轮加
权训练数据分类误差率最小的基本分类器。
之后求解G
^
%
;
?]
*
+F$
NOP 3G
?
&
+
7
?
#
+
" ;
?]
f
Fg
h
i
f
B
Yj
5K ;
?]
k
f
lg
h
i
f
B
j
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK" KB
j
3 B
Yj
;
?]
*
+F$
E 7 #
+
D &
+
5KB
Yj
;
?]
*
+F$
" KB
j
3 B
Yj
B
?
5KB
Yj
对上式求导之后可以得到:
G
^
"
4
>
HIJK
4 3 B
?
B
?
这跟我们刚才的计算过程完全一致,因此我们说当使用指数损失函数时,
AdaBoost 就是前向加法模型的一种特例。
4、梯度提升决策树(GBDT)
4.1 提升树-boosting tree
以决策树为基函数的提升方法称为提升树
,其决策树可以是分类树或者回归
树。提升树模型可以表示为决策树的加法模型。
其中,!8#m n
?
9表示决策树,n
?
表示树的参数,M 为树的个数。
针对不同的问题的提升树算法主要的区别就在于损失函数的不同,对于回归问
题来说,我们使用的是平方损失函数,对于分类问题来说,我们使用的是指数
损失函数。对二分类问题来说,提升树算法只需将 AdaBoost 的基分类器设置为
二分类树即可,可以说此时的提升树算法时 AdaBoost 算法的一个特例。所以我
们不再描述,我们主要关注回归问题的提升树算法。
对于回归问题的提升树算法来说,我们每一步主要拟合的是前一步的残差
,为
什么是残差,看下面的公式推导:
V &% Q
?
# " KV &% Q
?Y$
# 5 ! #m n
?
" & 3 Q
?Y$
# 3 ! #m n
?
'
" W[ 3 ! #m n
?
X
'
其中,r 代表的就是残差。
因此,我们得到回归问题中的提升树算法如下:
输入:训练数据集! " #
$
% &
$
% #
'
% &
'
% ( ) ) % #
*
% &
*
% 其中#
+
, - . /
0
% &
+
,
1 " 234% 546
输出:提升树Q
R
8#9.
(1)初始化Q
o
# " `
(2)对 m=1,2…M
(a) 计算每个数据的残差:
[
?+
" &
+
3 Q
?Y$
#
+
% = " 4%>% ( ) <
(b) 拟合残差学习一颗回归树,得到! #m n
?
(c) 更新Q
?
# " Q
?Y$
# 5 ! #m n
?
剩余20页未读,继续阅读
粉红色的的猫胖纸
- 粉丝: 1
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0