开篇寄语
继上一篇讨论FM算法后,本来想接着进行FFM的探讨,不过考虑到目前用到的东西跟GBDT有些关系,先复习下这个算法吧,FFM可以往后放一放
1、概述
GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一种迭代的决策树算法,跟RF(Random Forest)类似,所不同的是,RF是多棵树投票或者加权平均机制,GBDT是多个树加和机制,其泛化能力较强,不同于LR/FM/FFM/DNN模型(线性),GBDT为非线性模型(个人理解),所以业界有DNN之后加一层GBDT会有收益
GBDT主要由三个概念组成:Regression Decistion Tree(即DT),Gradient Boosting(即GB),Shrinkage,下面依次展开
2、回归树(Regression Decistion Tree)
回归树是决策树的一种,决策树分为:分类决策树和回归决策树,经典的决策树算法包括ID3/C4.5,都是分类决策树
1,分类树
分类树,每次分枝时穷举每个feature的每个阈值,找到使熵最大的feature的阈值进行分枝,叶子节点如果不唯一,就按多的来决定分类,衡量的标准是最大熵
1)核心概念
熵(熵越大,表示随机变量的不确定性越大):
H
(
X
)
=
–
∑
i
n
p
i
l
o
g
p
i
H(X) = – \sum_i^n p_i log p_i
H(X)=–i∑npilogpi
条件熵(在已知随机变量
X
X
X条件下随机变量
Y
Y
Y的不确定性,假设现在有
P
(
X
=
x
i
)
=
p
i
P(X=x_i)=p_i
P(X=xi)=pi ,则给定
X
X
X条件下
Y
Y
Y的条件熵):
H
(
Y
∣
X
)
=
∑
i
p
i
H
(
Y
∣
X
=
x
i
)
H(Y|X) = \sum_i p_i H(Y|X=x_i)
H(Y∣X)=i∑piH(Y∣X=xi)
信息增益(特征
A
A
A对于给定训练集合
D
D
D的信息增益
I
G
(
D
,
A
)
IG(D,A)
IG(D,A)为集合
D
D
D的熵与给定特征
A
A
A的条件下系统
D
D
D的条件熵
H
(
D
∣
A
)
H(D|A)
H(D∣A)之差):
I
G
(
D
,
A
)
=
H
(
D
)
–
H
(
D
∣
A
)
IG(D,A) = H(D) –H(D|A)
IG(D,A)=H(D)–H(D∣A)
信息增益比(特征集
A
A
A对训练数据集合
D
D
D的信息增益比
I
G
R
(
D
,
A
)
IGR(D,A)
IGR(D,A)定义为特征
A
A
A的信息增益
I
G
(
D
,
A
)
IG(D,A)
IG(D,A)与训练数据集
D
D
D关于特征
A
A
A的取值熵
H
A
(
D
)
HA(D)
HA(D)之比):
I
G
R
(
D
,
A
)
=
I
G
(
D
,
A
)
H
A
(
D
)
IG_R (D,A) = \frac {IG(D,A)}{H_A(D)}
IGR(D,A)=HA(D)IG(D,A)
ID3 算法采用信息增益作为特征选择的标准,而C4.5采用信息增益比(惩罚特征值多的特征)
2)损失函数
设决策树
T
T
T的叶节点的个数为
∣
T
∣
|T|
∣T∣,
t
t
t为
T
T
T的叶节点,该节点有
N
t
N_t
Nt个样本,其中类别
k
k
k的样本有
N
i
k
N_{ik}
Nik个,
H
t
(
T
)
H_t(T)
Ht(T)代表叶子节点
t
t
t的熵,另
a
≥
0
a≥0
a≥0,则决策树的损失函数可以定义为:
C
a
(
T
)
=
∑
t
N
t
H
t
(
T
)
+
a
∣
T
∣
C_a(T) = \sum_t N_t H_t(T) +a|T|
Ca(T)=t∑NtHt(T)+a∣T∣
这个公式用通俗语言讲就是:损失函数=sum(叶子节点样本数*叶子节点的熵) + a * 叶子结点个数
更新参数时,只考虑剪枝前后损失函数的差,所以剪枝可以理解为一种动态规划算法,如果新树比旧树损失小,则进行剪枝
2,回归树
回归树总体流程也是类似,不过在每个节点(不一定是叶子节点)都会得一个预测值,衡量最好的标准不再是最大熵,而是最小化均方差(回归问题通用标准)
暂时先写到这里,备用