在上一篇文章gdbt梯度提升原理,详细介绍了梯度、方向导数、为什么负梯度方向是函数下降最快方向,继而引出了GDBT的模型与优化原理。本篇将进一步以实例的方式演绎GDBT是如何进行回归预测的。
上篇推导出的优化模型如下:
fm(x,y,z)=fm−1(x,y,z)+learnrate∗(⅁Lfm−1)
f
m
(
x
,
y
,
z
)
=
f
m
−
1
(
x
,
y
,
z
)
+
l
e
a
r
n
r
a
t
e
∗
(
⅁
L
f
m
−
1
)
损失函数L取平方差函数:
L=12(y−yhat)2
L
=
1
2
(
y
−
y
h
a
t
)
2
也就是:
L=12(y−fm−1)2
L
=
1
2
(
y
−
f
m
−
1
)
2
求偏导数可得:
⅁Lfm−1=y−fm−1
⅁
L
f
m
−
1
=
y
−
f
m
−
1
取learn_rate=1,则优化模型为基于残差的模型:
fm(x,y,z)=fm−1(x,y,z)+(y−fm−1)
f
m
(
x
,
y
,
z
)
=
f
m
−
1
(
x
,
y
,
z
)
+
(
y
−
f
m
−
1
)
实战案例
案例主要来自李航老师的《统计机器学习》
首先是一组样本数据,安装上面的优化模型建模,训练参数
cart树构造
基础模型都将依据cart树模型,首先寻找构造cart树的切分点
根据考虑的切分点,计算模型误差,寻找误差最小的切分点
很显然6.5为最小的切分点,则选择6.5为切分点,构造好树之后,计算残差表,为提升树做准备
计算好残差表之后,根据优化模型
fm(x,y,z)=fm−1(x,y,z)+(y−fm−1)
f
m
(
x
,
y
,
z
)
=
f
m
−
1
(
x
,
y
,
z
)
+
(
y
−
f
m
−
1
)
做第一轮迭代,得到一个梯度提升树f1,循环迭代直到,预测结果达到我们心中效果即可停止迭代。
cart树构造方式
cart树不仅可以用做回归,也可以用做分类,分类指标为基尼指数,回归可以使用平方误差。上面例子模型结果会输出一个值,所以上面GDBT的构造方式,主要用来做回归分析,如果涉及到分类则需要修改构造方式。下一篇将会对cart分类树做详细介绍