提升树boosting tree模型

1、提升树的定义

提升树是以分类树或者回归树为基本分类器的提升方法。以决策树为基函数的提升方法称为提升树(boosting tree)

2、与AdaBoost算法的提升方法的区别

提升树算法只需将Adaboost算法的基本分类器限制为二分类树(对于二分类问题而言)即可,可以说提升树是Adaboost算法的特殊情况。

3、回归问题的提升树算法
训练数据
序号12345678910
x i x_i xi12345678910
y i y_i yi5.565.705.916.406.807.058.908.709.009.05
(1)求解数据的切分点

这里的切分点指的是将 x x x值划分界限,数据中 x x x的范围是 [ 1 , 10 ] [1,10] [1,10],假设我们可取得切分点 s s s [ 1.5 , 2.5 , 3.5 , . . . , 9.5 ] [1.5,2.5,3.5,...,9.5] [1.52.53.5...9.5],并且把分界线两边的样本集合记为 R 1 , R 2 R_1,R_2 R1R2。假设取1.5的分界线,即 s = 1.5 s=1.5 s=1.5,那么 R 1 = { 1 } , R 2 = { 2 , 3 , . . . , 10 } R_1=\{1\},R_2=\{2,3,...,10\} R1={1},R2={23...10},把 c 1 , c 2 c_1,c_2 c1,c2记为分界线两边 y i y_i yi的平均值,如公式(1)所示,则 c 1 = 5.56 , c 2 = 7.50 c_1=5.56,c_2=7.50 c1=5.56,c2=7.50
c 1 = 1 ∣ R 1 ∣ ∑ x i ∈ R 1 y i c_1=\frac{1}{|R_1|}\sum_{x_i \in R_1}y_i c1=R11xiR1yi

c 2 = 1 ∣ R 2 ∣ ∑ x i ∈ R 2 y i (1) c_2=\frac{1}{|R_2|}\sum_{x_i \in R_2}y_i \tag{1} c2=R21xiR2yi(1)
而我们最终要优化的目标是求分界线两边的数据的 y ˉ \bar{y} yˉ y i y_i yi平方和的最小值 m ( s ) m(s) m(s),如公式(2)所示。
m ( s ) = min ⁡ c 1 ∑ x i ∈ R 1 ( y i − c 1 ) 2 + min ⁡ c 1 ∑ x i ∈ R 2 ( y i − c 2 ) 2 (2) m(s)=\min_{c_1} \sum_{x_i \in R_1}(y_i-c_1)^2+\min_{c_1} \sum_{x_i \in R_2}(y_i-c_2)^2 \tag{2} m(s)=c1minxiR1(yic1)2+c1minxiR2(yic2)2(2)

(2)求回归树

实际上,对于以上数据求得最佳分界线是 s = 6.5 s=6.5 s=6.5,对应地有 R 1 = { 1 , 2 , . . . , 6 } , R 2 = { 7 , 8 , 9 , 10 } , c 1 = 6.24 , c 2 = 8.91 R_1=\{1,2,...,6\},R_2=\{7,8,9,10\},c_1=6.24,c_2=8.91 R1={12...6}R2={78910}c1=6.24c2=8.91。所以回归树 T 1 ( x ) T_1(x) T1(x)

T 1 ( x ) = { 6.24 , x < 6.5 8.91 , x ⩾ 6.5 (3) T_1(x)=\left\{\begin{matrix} 6.24, \qquad x<6.5\\ \\ 8.91, \qquad x\geqslant 6.5\\ \end{matrix}\right. \tag{3} T1(x)=6.24,x<6.58.91,x6.5(3)

(3)求当前加法模型 f 1 ( x ) f_1(x) f1(x)

当前的加法模型为
f 1 = T 1 ( x ) (4) f_1=T_1(x) \tag{4} f1=T1(x)(4)

(4)求当前加法模型的误差

f 1 ( x ) f_1(x) f1(x)拟合训练数据的残差表如下,其中 r 2 i = y i − f 1 ( x i ) , i = 1 , 2 , . . . , 10 r_{2i}=y_i-f_1(x_i),i=1,2,...,10 r2i=yif1(xi),i=1,2,...,10

残差表
序号12345678910
x i x_i xi12345678910
r 2 i r_{2i} r2i-0.68-0.54-0.330.160.560.81-0.01-0.210.090.14

f 1 ( x ) f_1(x) f1(x)拟合训练数据的平方差损失为
L ( y , f 1 ( x ) ) = ∑ i = 1 10 ( y i − f 1 ( x i ) ) 2 = 1.93 (5) L(y,f_1(x))=\sum_{i=1}^{10}(y_i-f_1(x_i))^2=1.93 \tag{5} L(y,f1(x))=i=110(yif1(xi))2=1.93(5)
这里的误差为1.93,如果我们定义终止时候的误差比这个误差要小,那么算法继续执行以上步骤,直到满足误差为止。

(5)求回归树 T 2 ( x ) T_2(x) T2(x),即用于提升的下一个基本分类器

这里求解过程与求解 T 1 ( x ) T_1(x) T1(x)一样,只不过拟合的数据是上上轮中的残差表(因为后面的线性组合分类器是相加的结果),可以得到:
T 2 ( x ) = { − 0.52 , x < 3.5 0.22 , x ⩾ 3.5 (6) T_2(x)=\left\{\begin{matrix} -0.52, \qquad x<3.5\\ \\ 0.22, \qquad x\geqslant 3.5\\ \end{matrix}\right. \tag{6} T2(x)=0.52,x<3.50.22,x3.5(6)
即在分界线 s = 3.5 s=3.5 s=3.5两边的数据的 r 2 i ˉ \bar{r_{2i}} r2iˉ r 2 i r_{2i} r2i平方和有最小值 m ( s ) m(s) m(s)

(6)求当前加法模型 f 2 ( x ) f_2(x) f2(x)

f 2 = f 1 + T 2 ( x ) = { 5.72 , x < 3.5 6.46 , 3.5 ⩽ x < 6.5 9.13 , x ⩾ 6.5 (6) f_2=f_1+T_2(x) =\left\{\begin{matrix} 5.72, \qquad x<3.5\\ \\ 6.46, \qquad 3.5\leqslant x<6.5\\ \\ 9.13, \qquad x \geqslant 6.5\\ \end{matrix}\right. \tag{6} f2=f1+T2(x)=5.72,x<3.56.46,3.5x<6.59.13,x6.5(6)
f 1 , T 2 ( x ) f_1,T_2(x) f1,T2(x)的定义域区间重新组合在一起,比如满足关系 x < 3.5 ( f 1 中 的 约 束 ) 和 x < 6.5 ( T 2 中 的 约 束 ) x<3.5(f_1中的约束)和x<6.5(T_2中的约束) x<3.5(f1)x<6.5(T2),其结果为 6.24 − 0.52 = 5.72 6.24-0.52=5.72 6.240.52=5.72

(7)不断重复以上步骤得出满足误差的最终的分类器 f ( x ) f(x) f(x),即为所得的提升树。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值