提升树boosting tree模型

1、提升树的定义

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

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

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

3、回归问题的提升树算法

训练数据

序号 1 2 3 4 5 6 7 8 9 10
xi x i 1 2 3 4 5 6 7 8 9 10
yi y i 5.56 5.70 5.91 6.40 6.80 7.05 8.90 8.70 9.00 9.05
(1)求解数据的切分点

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

c1=1|R1|xiR1yi c 1 = 1 | R 1 | ∑ x i ∈ R 1 y i

c2=1|R2|xiR2yi(1) (1) c 2 = 1 | R 2 | ∑ x i ∈ R 2 y i

而我们最终要优化的目标是求分界线两边的数据的 y¯ y ¯ yi y i 平方和的最小值 m(s) m ( s ) ,如公式(2)所示。
m(s)=minc1xiR1(yic1)2+minc1xiR2(yic2)2(2) (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)求回归树

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

T1(x)=6.24,x<6.56.24,x6.5(3) (3) T 1 ( x ) = { 6.24 , x < 6.5 6.24 , x ⩾ 6.5

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

当前的加法模型为

f1=T1(x)(4) (4) f 1 = T 1 ( x )

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

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

残差表

序号 1 2 3 4 5 6 7 8 9 10
xi x i 1 2 3 4 5 6 7 8 9 10
r2i r 2 i -0.68 -0.54 -0.33 0.16 0.56 0.81 -0.01 -0.21 0.09 0.14

f1(x) f 1 ( x ) 拟合训练数据的平方差损失为

L(y,f1(x))=i=110(yif1(xi))2=1.93(5) (5) L ( y , f 1 ( x ) ) = ∑ i = 1 10 ( y i − f 1 ( x i ) ) 2 = 1.93

这里的误差为1.93,如果我们定义终止时候的误差比这个误差要小,那么算法继续执行以上步骤,直到满足误差为止。

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

这里求解过程与求解 T1(x) T 1 ( x ) 一样,只不过拟合的数据是上上轮中的残差表(因为后面的线性组合分类器是相加的结果),可以得到:

T2(x)=0.52,x<3.50.22,x3.5(6) (6) T 2 ( x ) = { − 0.52 , x < 3.5 0.22 , x ⩾ 3.5

即在分界线 s=3.5 s = 3.5 两边的数据的 r2i¯ r 2 i ¯ r2i r 2 i 平方和有最小值 m(s) m ( s )

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

f2=f1+T2(x)=5.72,x<3.56.46,3.5x<6.59.13,x6.5(6) (6) f 2 = f 1 + T 2 ( x ) = { 5.72 , x < 3.5 6.46 , 3.5 ⩽ x < 6.5 9.13 , x ⩾ 6.5

f1,T2(x) f 1 , T 2 ( x ) 的定义域区间重新组合在一起,比如满足关系 x<3.5(f1)x<6.5(T2) x < 3.5 ( f 1 中 的 约 束 ) 和 x < 6.5 ( T 2 中 的 约 束 ) ,其结果为 6.240.52=5.72 6.24 − 0.52 = 5.72

(7)不断重复以上步骤得出满足误差的最终的分类器 f(x) f ( x ) ,即为所得的提升树。

你可能感兴趣的:(机器学习基础)