既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
f(x)=∑m=1MαmT(x;Θm)
f
(
x
)
=
∑
m
=
1
M
α
m
T
(
x
;
Θ
m
)
f(x)=\sum\limits_{m = 1}^M {{\alpha _m}} T(x;{\Theta _m})
αm
α
m
\alpha _m是每个基学习器的权系数,
T(x;Θm)
T
(
x
;
Θ
m
)
T(x;{\Theta _m)}代表学习得到的第m个基学习器,
m
m
m为学习器个数,ΘmΘm\Theta _m为学习器分类的参数,一般这里指分类树或者回归树模型参数。
在给定训练数据和损失函数形式后,boosting学习模型可以定义为一个损失函数极小化的问题,
优化的目标函数为:
argminf∑i=1NL(yi,f(xi))
arg
min
f
∑
i
=
1
N
L
(
y
i
,
f
(
x
i
)
)
\mathop {\arg \min }\limits_f \sum\limits_{i = 1}^N {L({y_i},f({x_i}))}
L
L
L为损失函数,NNN为样本个数。从这两个定义我们就可以知道boosting类算法的模型和优化目标函数是什么。接下来理解boosted tree 就容易了。
boosted tree
提升树是以分类树和回归树为基学习器的提升算法,就是将
T(x;Θm)
T
(
x
;
Θ
m
)
T(x;{\Theta _m)}学习器定义为了决策树。提升树被认为是统计学性能最好的方法之一。为了方便大家理解,这里就不再另外定义模型了(参考前文),提升树模型如下
f(x)=∑m=1MαmT(x;Θm)
f
(
x
)
=
∑
m
=
1
M
α
m
T
(
x
;
Θ
m
)
f(x)=\sum\limits_{m = 1}^M {{\alpha _m}} T(x;{\Theta _m})对于二分类问题,提升树可以看做采用二分类树的adaboost算法,所以这里不再详细解释。因此这里的
T(x;Θm)
T
(
x
;
Θ
m
)
T(x;{\Theta _m})为回归树。回归提升树使用的前向分布计算法:
f0(x)=0
f
0
(
x
)
=
0
f_0(x)=0
fm(x)=fm−1(x)+T(x;Θm)
f
m
(
x
)
=
f
m
−
1
(
x
)
T
(
x
;
Θ
m
)
f_m(x)=f_{m-1}(x)+T(x;\Theta _m)
fM(x)=∑m=1MT(x;Θm)
f
M
(
x
)
=
∑
m
=
1
M
T
(
x
;
Θ
m
)
f_M(x)=\sum\limits_{m = 1}^M {} T(x;{\Theta _m)}前向计算到低
m
m
m步时,需要求解目标函数Θ′m=argminΘ∑i=1NL(yi,fm−1(xi)+T(x−i;Θm))Θm′=argminΘ∑i=1NL(yi,fm−1(xi)+T(x−i;Θm))\Theta_m’=\mathop {\arg \min }\limits_{\Theta} \sum\limits_{i = 1}^N {L({y_i},f_{m-1}({x_i})+T(x-_i;\Theta_m))}
Θ′m
Θ
m
′
\Theta_m’为根据损失函数更新的第m颗树的参数。假设这里的损失函数我们定义为平方误差函数
L=(y−f(x))2
L
=
(
y
−
f
(
x
)
)
2
L=(y-f(x))^2损失就变为了
L=[y−fm−1(xi)−T(x−i;Θm)]2
L
=
[
y
−
f
m
−
1
(
x
i
)
−
T
(
x
−
i
;
Θ
m
)
]
2
L=[y-f_{m-1}({x_i})-T(x-_i;\Theta_m)]^2这就是基于平方误差函数的提升树模型。
算法步骤可以总结如下:
1.输入训练数据
(xi,yi)
(
x
i
,
y
i
)
(x_i,y_i);
2.构建提升树模型
fM(x)
f
M
(
x
)
f_M(x)
3.初始化
f0(x)=0
f
0
(
x
)
=
0
f_0(x)=0
对于第m步,首先计算残差
rmi=yi−fm−1(xi)
r
m
i
=
y
i
−
f
m
−
1
(
x
i
)
r_{mi}=y_i-f_{m-1}({x_i})然后根据残差求取误差函数最小化的分类器,得到树模型
Θ′m=argminΘ∑i=1NL(rmi,fm−1(xi)+T(x−i;Θm))
Θ
m
′
=
arg
min
Θ
∑
i
=
1
N
L
(
r
m
i
,
f
m
−
1
(
x
i
)
T
(
x
−
i
;
Θ
m
)
)
\Theta_m’=\mathop {\arg \min }\limits_{\Theta} \sum\limits_{i = 1}^N {L({r_{mi}},f_{m-1}({x_i})+T(x-_i;\Theta_m))}
- 更新提升树模型
fm(x)=fm−1(x)+T(x;Θm)
f
m
(
x
)
=
f
m
−
1
(
x
)
T
(
x
;
Θ
m
)
f_m(x)=f_{m-1}(x)+T(x;\Theta _m)
详细的例子可以参考这篇博文:
https://blog.csdn.net/sb19931201/article/details/52506157中的算法实例,即李航统计学习P149例 8.2
GBM梯度提升树
了解了adaboost和提升树算法后,就很容易理解GBM算法了。GBM(提升器)算法,又名GBDT,是基于梯度下降算法得到提升树模型。它与提升树的关键不同之处,就在于残差更新的方式,下面来看看GBM的的计算步骤;
1.输入训练数据
(xi,yi)
(
x
i
,
y
i
)
(x_i,y_i);
2.构建提升树模型
fM(x)
f
M
(
x
)
f_M(x)
3.初始化
f0(x)=arg minΘ∑i=1NL(yi;Θ)
f
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
更新提升树模型
fm(x)=fm−1(x)+T(x;Θm)
f
m
(
x
)
=
f
m
−
1
(
x
)
T
(
x
;
Θ
m
)
f_m(x)=f_{m-1}(x)+T(x;\Theta _m)
详细的例子可以参考这篇博文:
https://blog.csdn.net/sb19931201/article/details/52506157中的算法实例,即李航统计学习P149例 8.2
GBM梯度提升树
了解了adaboost和提升树算法后,就很容易理解GBM算法了。GBM(提升器)算法,又名GBDT,是基于梯度下降算法得到提升树模型。它与提升树的关键不同之处,就在于残差更新的方式,下面来看看GBM的的计算步骤;
1.输入训练数据
(xi,yi)
(
x
i
,
y
i
)
(x_i,y_i);
2.构建提升树模型
fM(x)
f
M
(
x
)
f_M(x)
3.初始化
f0(x)=arg minΘ∑i=1NL(yi;Θ)
f
[外链图片转存中…(img-qBSQzRv0-1715102005969)]
[外链图片转存中…(img-YGXao5x5-1715102005969)]
[外链图片转存中…(img-sZZlNsCp-1715102005969)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新