数据挖掘竞赛中通常用到的模型包括xgboost、lightgbm,SVM等。掌握每种模型的原理是学会应用模型的前提条件。因此,本篇文章主要用于梳理线性回归模型、决策树模型、GBDT模型的原理及模型的调参方法。
1.线性回归模型
线性回归模型是入门机器学习的经典模型。其基本形式为:
h
θ
(
x
)
=
∑
i
=
1
n
θ
i
x
i
=
θ
T
X
\ h_{\theta}(x) = \sum_{i=1}^{n}\theta_{i}x_{i}=\theta^{T}X
hθ(x)=i=1∑nθixi=θTX
因现实世界中无法做到严格预测出正确结果,预测结果和真实值之间存在一定的误差,因此,线性回归模型一般记作:
h
θ
(
x
)
=
θ
T
X
+
ϵ
\ h_{\theta}(x) = \theta^{T}X+\epsilon
hθ(x)=θTX+ϵ
每个样本的预测值与真实值之间都存在
ϵ
i
\epsilon^{i}
ϵi,根据中心极限定理可知,
ϵ
i
\epsilon^{i}
ϵi服从均值为0,方差为
σ
2
\sigma^{2}
σ2的正态分布。
y
i
=
θ
T
x
i
+
ϵ
i
y^{i} = \theta^{T}x^{i}+\epsilon^{i}
yi=θTxi+ϵi
P
(
ϵ
i
)
=
1
2
π
σ
e
−
(
ϵ
i
)
2
2
σ
2
\ P(\epsilon^{i}) = \frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{{(\epsilon^{i})}^{2}}{2\sigma^{2}}}
P(ϵi)=2πσ1e−2σ2(ϵi)2
ϵ
i
=
y
i
−
θ
T
x
i
\epsilon^{i} = y^{i} - \theta^{T}x^{i}
ϵi=yi−θTxi
P
(
y
i
−
θ
T
x
i
)
=
1
2
π
σ
e
−
(
y
i
−
θ
T
x
i
)
2
2
σ
2
\ P(y^{i} - \theta^{T}x^{i}) = \frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{{(y^{i} - \theta^{T}x^{i})}^{2}}{2\sigma^{2}}}
P(yi−θTxi)=2πσ1e−2σ2(yi−θTxi)2
根据上述单样本公式构建线性回归模型的对数似然函数,公式为:
P
(
y
i
−
θ
T
x
i
)
=
1
2
π
σ
e
−
(
y
i
−
θ
T
x
i
)
2
2
σ
2
\ P(y^{i} - \theta^{T}x^{i}) = \frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{{(y^{i} - \theta^{T}x^{i})}^{2}}{2\sigma^{2}}}
P(yi−θTxi)=2πσ1e−2σ2(yi−θTxi)2
通过对似然函数取对数后得到损失函数:
l
o
s
s
=
∑
i
=
1
n
(
h
θ
(
x
i
)
−
y
i
)
2
loss = \sum_{i=1}^{n}(h_{\theta}(x^{i})-y^{i})^{2}
loss=i=1∑n(hθ(xi)−yi)2
通过BGD或SGD的方式可求解
θ
\theta
θ。
2.决策树模型
概念:决策树模型是一种自顶向下的模型,它以信息熵为度量构建了一颗熵值下降最快的树,到叶子节点是熵值下降为0,此时每个叶子节点的每个实例都属于同一类。
决策树通常包括三种:ID3、C4.5、CART。三种的区别在于度量标准不同。ID3采用信息增益作为度量指标,C4.5采用信息增益率,CART是基尼系数。
(1)信息增益:
g(D,A) = H(D) - H(D|A)
(2)信息增益率
gr(D,A) = g(D,A)/H(A)
(3)基尼系数
决策树的评价函数为:
C
(
t
)
=
∑
t
N
t
H
(
t
)
C(t) = \sum_{t}N_{t}H(t)
C(t)=t∑NtH(t)
为防止决策树过拟合,通常需要对决策树进行剪枝,因此修正后的评价函数为:
C
(
t
)
=
∑
t
N
t
H
(
t
)
+
α
∣
T
l
e
a
f
∣
C(t) = \sum_{t}N_{t}H(t)+\alpha|T_{leaf}|
C(t)=t∑NtH(t)+α∣Tleaf∣
3.随机森林
随机森林有多颗决策树组成,基本步骤如下:
(1)从样本集中采用Bootstrap采样采集得到n个样本;
(2)从所有属性中随机选择k个属性,选择k个属性中的最佳分割属性作为节点构建CART决策树;
(3)重复以上两步m次,构建m棵决策树;
(4)m棵决策树形成随机森林,通过投票表决机制,决定实例属于哪一类。
4.GBDT
GBDT模型是一个集成模型,是对很多CART树的线性相加。即给定一个目标损失函数,定义域为所有可行的弱函数集合,通过迭代的选择一个负梯度方向上的基函数来逐渐逼近局部极小值。
GBDT的损失函数定义为:
L
(
f
t
(
x
)
,
y
)
=
L
(
f
t
−
1
+
h
t
(
x
)
,
y
)
L(f_{t}(x),y) = L(f_{t-1}+h_{t}(x),y)
L(ft(x),y)=L(ft−1+ht(x),y)
第t轮的第i个样本的损失函数的负梯度表示为:
r
t
,
i
=
−
[
δ
L
(
y
,
f
(
x
i
)
)
δ
f
(
x
i
)
]
r_{t,i}=-[\frac{\delta L(y,f(x_{i}))}{\delta f(x_{i})}]
rt,i=−[δf(xi)δL(y,f(xi))]
对于每一个叶子节点的样本,需要求出使损失函数最小,拟合叶子节点最好的输出值ctj:
c
t
,
j
=
a
r
g
m
i
n
∑
x
i
L
(
y
i
,
f
t
−
1
(
x
i
+
c
)
)
c_{t,j}=argmin\sum_{x_{i}} L(y_{i}, f_{t-1}(x_{i}+c))
ct,j=argminxi∑L(yi,ft−1(xi+c))
此时本轮的决策树拟合函数为:
h
t
(
x
)
=
∑
j
=
1
J
c
t
,
j
I
(
x
∈
R
t
,
j
)
h_{t}(x)=\sum_{j=1}^{J}c_{t,j}I(x\in R_{t,j})
ht(x)=j=1∑Jct,jI(x∈Rt,j)
所以这轮迭代得到的强学习器为:
f
t
(
x
)
=
f
t
−
1
(
x
)
+
h
t
(
x
)
f_{t}(x)=f_{t-1}(x)+h_{t}(x)
ft(x)=ft−1(x)+ht(x)