task4——模型和调参

数据挖掘竞赛中通常用到的模型包括xgboostlightgbmSVM等。掌握每种模型的原理是学会应用模型的前提条件。因此,本篇文章主要用于梳理线性回归模型决策树模型GBDT模型的原理及模型的调参方法。

1.线性回归模型

线性回归模型是入门机器学习的经典模型。其基本形式为:
 hθ(x)=i=1nθixi=θTX\ h_{\theta}(x) = \sum_{i=1}^{n}\theta_{i}x_{i}=\theta^{T}X
因现实世界中无法做到严格预测出正确结果,预测结果和真实值之间存在一定的误差,因此,线性回归模型一般记作:
 hθ(x)=θTX+ϵ\ h_{\theta}(x) = \theta^{T}X+\epsilon
每个样本的预测值与真实值之间都存在ϵi\epsilon^{i},根据中心极限定理可知,ϵi\epsilon^{i}服从均值为0,方差为σ2\sigma^{2}的正态分布。
yi=θTxi+ϵi y^{i} = \theta^{T}x^{i}+\epsilon^{i}
 P(ϵi)=12πσe(ϵi)22σ2 \ P(\epsilon^{i}) = \frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{{(\epsilon^{i})}^{2}}{2\sigma^{2}}}
ϵi=yiθTxi \epsilon^{i} = y^{i} - \theta^{T}x^{i}
 P(yiθTxi)=12πσe(yiθTxi)22σ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)=12πσe(yiθTxi)22σ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}}}
通过对似然函数取对数后得到损失函数:
loss=i=1n(hθ(xi)yi)2 loss = \sum_{i=1}^{n}(h_{\theta}(x^{i})-y^{i})^{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)=tNtH(t) C(t) = \sum_{t}N_{t}H(t)
为防止决策树过拟合,通常需要对决策树进行剪枝,因此修正后的评价函数为:
C(t)=tNtH(t)+αTleaf C(t) = \sum_{t}N_{t}H(t)+\alpha|T_{leaf}|

3.随机森林

随机森林有多颗决策树组成,基本步骤如下:
(1)从样本集中采用Bootstrap采样采集得到n个样本;
(2)从所有属性中随机选择k个属性,选择k个属性中的最佳分割属性作为节点构建CART决策树;
(3)重复以上两步m次,构建m棵决策树;
(4)m棵决策树形成随机森林,通过投票表决机制,决定实例属于哪一类。

4.GBDT

GBDT模型是一个集成模型,是对很多CART树的线性相加。即给定一个目标损失函数,定义域为所有可行的弱函数集合,通过迭代的选择一个负梯度方向上的基函数来逐渐逼近局部极小值。
GBDT的损失函数定义为:
L(ft(x),y)=L(ft1+ht(x),y) L(f_{t}(x),y) = L(f_{t-1}+h_{t}(x),y)
第t轮的第i个样本的损失函数的负梯度表示为:
rt,i=[δL(y,f(xi))δf(xi)] r_{t,i}=-[\frac{\delta L(y,f(x_{i}))}{\delta f(x_{i})}]
对于每一个叶子节点的样本,需要求出使损失函数最小,拟合叶子节点最好的输出值ctj:
ct,j=argminxiL(yi,ft1(xi+c)) c_{t,j}=argmin\sum_{x_{i}} L(y_{i}, f_{t-1}(x_{i}+c))
此时本轮的决策树拟合函数为:
ht(x)=j=1Jct,jI(xRt,j) h_{t}(x)=\sum_{j=1}^{J}c_{t,j}I(x\in R_{t,j})
所以这轮迭代得到的强学习器为:
ft(x)=ft1(x)+ht(x) f_{t}(x)=f_{t-1}(x)+h_{t}(x)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章