【Boosting深度学习算法】


一、Boosting

Boosting是一种解决欠拟合问题的算法,主要思想是随着学习的积累由弱到强。

1、AdaBoost的实现过程

  1. 初始化训练集数据权重,初始权重是相等的

  2. 通过这个学习器,计算错误率

  3. 计算这个学习器的投票权重

    权重计算公式 ε t ε_t εt表示错误率,当错误率越高, α t α_t αt的值越小
    α t = 1 2 l n ( 1 − ε t ε t ) α_t=\frac{1}{2}ln(\frac{1-ε_t}{ε_t}) αt=21ln(εt1εt)

  4. 对每个样本进行重新赋权
    D t + 1 ( x ) = D t ( x ) Z t ∗ { e − α t 预测值等于真实值 e α t 预测值不等于真实值 D_{t+1}(x)=\frac{D_t(x)}{Z_t}* \begin{cases} e^{-α_t} & \text{预测值等于真实值} \\[2ex] e^{α_t} & \text{预测值不等于真实值} \\ \end{cases} Dt+1(x)=ZtDt(x) eαteαt预测值等于真实值预测值不等于真实值

  5. 重复1-4过程

  6. 对构建后的最后的学习器进行加权投票
    H ( x ) = s i g n ( ∑ i = 1 m α i h i ( x ) ) H(x)=sign(\sum_{i=1}^{m}α_ih_i(x)) H(x)=sign(i=1mαihi(x))

二、GBDT

GBDT梯度提升决策树算法是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来作为最终的答案。
GBDT = 梯度下降+Boosting+决策树

1.案例

l o s s = 1 2 m ∑ i = 1 m ( y − y ’ ) 2 loss=\frac{1}{2m}\sum_{i=1}^m(y-y^’)^2 loss=2m1i=1m(yy)2
l o s s d y ’ = − 1 m ∑ i = 1 m ( y − y ’ ) lossdy^’=-\frac{1}{m}\sum_{i=1}^m(y-y^’) lossdy=m1i=1m(yy)

给出4个测试样本,通过年龄和身高特征预测第5个身高

编号年龄体重身高
15201.1
27301.3
321701.7
430601.8
52565?

l o s s d y ’ = − 1 m ∑ i = 1 m ( y − y ’ ) = − 1 4 ( 1.1 − y ’ ) − 1 4 ( 1.3 − y ’ ) − 1 4 ( 1.7 − y ’ ) − 1 4 ( 1.8 − y ’ ) lossdy^’=-\frac{1}{m}\sum_{i=1}^m(y-y^’)=-\frac{1}{4}(1.1-y^’)-\frac{1}{4}(1.3-y^’)-\frac{1}{4}(1.7-y^’)-\frac{1}{4}(1.8-y^’) lossdy=m1i=1m(yy)=41(1.1y)41(1.3y)41(1.7y)41(1.8y)
= 1.1 + 1.3 + 1.7 + 1.8 4 − y ’ = 0 =\frac{1.1+1.3+1.7+1.8}{4}-y^’=0 =41.1+1.3+1.7+1.8y=0
y ’ = 1.475 y’=1.475 y=1.475


h 0 ( x ) = 1.475 h_0(x)=1.475 h0(x)=1.475

求解划分点

真实身高预测身高误差值
1.11.475-0.375
1.31.475-0.175
1.71.4750.225
1.81.4750.325

重构目标值,以误差值作为目标值重构样本

编号年龄体重身高
1520-0.375
2730-0.175
321700.225
430600.325
52565?

纯度计算公式,以21为例
∑ i = 1 m ( y − 均值 ) n i \frac{\sum_{i=1}^m(y-均值)}{n_i} nii=1m(y均值)
( − 0.375 + 0.275 ) + ( − 0.175 + 0.275 ) 2 = 0.01 \frac{(-0.375+0.275)+(-0.175+0.275)}{2}=0.01 2(0.375+0.275)+(0.175+0.275)=0.01
( 0.225 − 0.275 ) + ( 0.325 − 0.275 ) 2 = 0.0025 \frac{(0.225-0.275)+(0.325-0.275)}{2}=0.0025 2(0.2250.275)+(0.3250.275)=0.0025
纯度 = 0.01 + 0.0025 = 0.0125 纯度=0.01+0.0025=0.0125 纯度=0.01+0.0025=0.0125

划分点小于划分点大于划分点纯度
年龄51,2,3,40.082
年龄712,3,40.047
年龄211,23,40.0125
年龄301,2,340.062
体重201,2,3,40.082
体重3012,3,40.047
体重701,23,40.0125
年龄601,2 ,430.0867

找出纯度最小的特征值,然后通过调整好的目标值,即年龄21和体重70,通过年龄21进行划分。

求解 h 1 ( x ) h_1(x) h1(x)
1、年龄<21分支
( − 0.375 − y ’ ) + ( − 0.175 − y ’ ) 2 = 0 \frac{(-0.375-y^’)+(-0.175-y’)}{2}=0 2(0.375y)+(0.175y)=0
y ’ = − 0.275 y’=-0.275 y=0.275
2、年龄>=21分支
( 0.225 − y ’ ) + ( 0.325 − y ’ ) 2 = 0 \frac{(0.225-y^’)+(0.325-y’)}{2}=0 2(0.225y)+(0.325y)=0
y ’ = 0.275 y’=0.275 y=0.275
经过两步之后,此时
h 0 ( x ) = 1.475 h_0(x)=1.475 h0(x)=1.475
h 1 ( x ) = { − 0.275 年龄<21 0.275 年龄>=21 h_1(x)=\begin{cases} -0.275 & \text{年龄<21} \\[2ex] 0.275 & \text{年龄>=21} \\ \end{cases} h1(x)= 0.2750.275年龄<21年龄>=21

求解 h 2 ( x ) h_2(x) h2(x)

第一轮目标值预测值误差值
-0.375-0.275-0.1
-0.175-0.2750.1
0.2250.275-0.05
0.3250.2750.05

重构目标值,以误差值作为目标值重构样本

编号年龄体重身高
1520-0.1
27300.1
32170-0.05
430600.05
52565?

重复计算纯度,经计算以体重为30的纯度最低

h 2 ( x ) = { − 0.1 体重<30 0.03 体重>=30 h_2(x)=\begin{cases} -0.1& \text{体重<30} \\[2ex] 0.03& \text{体重>=30} \\ \end{cases} h2(x)= 0.10.03体重<30体重>=30

经过两步运算,此时预测编号5的身高

H ( x ) = h 0 ( x ) + h 1 ( x ) + h 2 ( x ) = 1.475 + { − 0.275 年龄<21 0.275 年龄>=21 + { − 0.1 体重<30 0.03 体重>=30 = 1.75 H(x)=h_0(x)+h_1(x)+h_2(x)=1.475+\begin{cases} -0.275 & \text{年龄<21} \\[2ex] 0.275 & \text{年龄>=21} \\ \end{cases}+\begin{cases} -0.1& \text{体重<30} \\[2ex] 0.03& \text{体重>=30} \\ \end{cases}=1.75 H(x)=h0(x)+h1(x)+h2(x)=1.475+ 0.2750.275年龄<21年龄>=21+ 0.10.03体重<30体重>=30=1.75


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值