工作

搭建金融信贷风控中的机器学习模型-(8)梯度提升算法

2019-09-28  本文已影响0人  GQRstar

        在分类任务中,除了逻辑回归、SVM、决策树等简单模型外,还有例如随机森林之类的集成模型,GBDT就是其中一类代表的梯度提升模型。

1.梯度提升(Gradient Boosting)的概念

        在求解函数f(x)最值问题中,变量的最优解是在参数空间内搜索,梯度下降法是基本的数值方法之一,以最小值为例说明基本步骤:
1.初始化w=w^0
2.for i in range[0:N]:
- 求解梯度d_i=-\frac{\partial f}{\partial w}|w^i
- 更新w^{i+1}=w^i+\lambda_id_i,\lambda_i为当前步长
则最终解为w^*=w^0+\sum_{i=1}^N\lambda_id_i
        如果将变量扩展到函数空间,考虑给定数据集{x_i,y_i|i=1,2,3...,M},建立xy的回归模型y=f(x),需要优化损失函数L(y,f(x))。即求解损失函数的最优解f(x),即
f^*(x)=argmin_fL(y,f(x))。求解的步骤与梯度下降法一致,基本步骤仍为:
1.初始化:f(x)=f^0(x)
2.for i in range[0:N]:
- 求解梯度g_i(x)=-\frac{\partial L(y,f(x))}{\partial f(x)}|f^i(x)
- 更新f^{i+1}(x)=f^i(x)+\lambda_ig_i(x),\lambda_i=argmin_{\lambda}L(y,f^i(x)+\lambda g_i(x))
则最终解为f^*(x)=f^0(x)+\sum_{i=1}^N\lambda_i g_i(x)
        如果将上述介绍的模型定义为CART模型,即可得到Gradient Boosting Decision Tree(GBDT)。当然基模型也可以使用其他分类器或者回归器。
GBDT的特点是

2.GBDT 模型简介

2.1原理(以分类树为例)

结构
F(x)=\sum_{k=1}^Kf_k(x)若干个分类树结果加和的方式来逼近y,y是二分类标签,K是分类树的个数。
损失函数

5.迭代下去可以得到F^M(x)
注意:

3.GBDT的升级版:XGBoost

3.1原理

        GBDT模型是将损失函数进行线性逼近,本质是对损失函数做一阶泰勒展开:
Loss(y,F_k(x)+f(x))=Loss(y,F^k(x))+\frac{\partial Loss}{\partial F}|F^k(x)*f(x)+o(f(x))
如果用多项式代替线性,将泰勒展开到二阶,就得到精度更高的下降法:
Loss(y,F^k(x)+f(x))=Loss(y,F^k(x))+gf(x)+\frac{1}{2}hf^2(x)+o(f^2(x))+\Omega(f)\cong Loss(y,F^k(x))+gf(x)+\frac{1}{2}hf^2(x)+\Omega(f),
其中g=\frac{\partial Loss}{\partial F}|F^k(x),h=\frac{\partial^ 2Loss}{\partial F^2}
由于Loss(y,F^k(x)为常数,所以对损失函数的最小化,等价于对\hat l=gf(x)+\frac{1}{2}hf^2(x)+\Omega(f)的最小化。
gf(x)+\frac{1}{2}hf^2(x)是模型在预测精度上的为残差,\Omega(f)代表模型的复杂度,在XGBoost中模型的复杂度一般表示为\Omega(f)=\gamma T+\frac{\gamma}{2}\sum w^2_j,T代表叶子结点个数,w_j为叶子结点的取值,避免过拟合。
综上,加入第t棵树后的损失函数的表达式(忽略常数项)可以近似为:
\hat l^t(x)=gf(x)+\frac{1}{2}hf^2(x)+\Omega(f)=\sum_{i=1}^n[g_if_i(x)+\frac{1}{2}h_if_i^2(x)]+\gamma T+\frac{\gamma}{2}\sum_{j=1}^Tw^2_j=\sum_{j=1}^T[(\sum_{x_i \in I_j}g_i)w_j+\frac{1}{2}(\sum_{x_i \in I_j}h_i)w^2_j]+\gamma T
为了让\hat l_t最小化,w的取值是w^*=\frac{\sum_{x_i \in I_j}g_i}{\sum_{x_i \in I_j}h_i+\lambda}
此时,\hat l_t=-\frac{1}{2}\sum_{j=1}^T\frac{(\sum_{x_i \in I_j}g_i)^2}{\sum_{x_i \in I_j}h_i+\lambda T}

3.2确定树结构

假设树的结构已经确定,则\hat l_t为树的得分,我们的任务是得到得分最小的树。理想情况下,可以枚举所有的可能挑选得分最小的结构,当样本或变量较多时,枚举法几乎不可能。,因此采用近似算法:
1.贪婪法:生长一棵树,寻找最优特征以及最优分裂点形成子树,当数据量较大时,速度较慢

贪婪法1
贪婪法2
2.近似法:在贪婪法中用分位点代替每种可能的取值,降低了精度但速度快
近似法

3.3其他优化

优化

3.4 特征重要性

特征重要性
主要步骤

4.XGBoost模型在信贷风控中的应用

        在构造XGBoost模型用于违约预测时,依然需要对数据做预处理工作和特征工程。需要注意的是:

上一篇下一篇

猜你喜欢

热点阅读