金融风控训练营-Task04学习笔记
金融风控训练营-Task04
-
一、学习知识点概要
-
二、学习内容
-
-
1、模型原理
-
- 1.1 逻辑回归模型
-
- 1.1.1 核心思想
-
1.1.2 判定边界
-
1.1.3 代价函数与梯度下降
- 1.2 决策树模型
-
- 1.2.1 ID3算法
-
1.2.2 决策树可视化
- 1.3 GBDT模型
- 1.4 XGBoost模型
- 1.5 LightGBM模型
-
-
2、模型性能对比分析
-
- 2.1 基于逻辑回归的分类器构建
-
- 2.2 基于决策树的方法设计
-
- 2.3 集成学习方法的设计思路
-
- 2.4 模型性能评估策略
-
-
2.5 模型评价指标设定
-
三、学习问题与解答
-
四、学习思考与总结
-
这份学习资料源自阿里云天池龙珠计划金融风控训练营,并提供详细的学习内容。具体的学习链接如下:https://tianchi.aliyun.com/specials/activity/promotion/aicampfr
一、学习知识点概要
-
模型原理
- Logistic回归分析方法
- 基于决策树的分类方法
- 梯度提升决策树算法
- 改进型梯度提升树算法
- 轻量级梯度提升树方法
-
模型对比分析及性能指标研究
- 二元判别分析法
- 分叉分析模型
- 集成策略构建
- 模型评价体系构建
- 模型评判基准设定
二、学习内容
1、模型原理
1.1 逻辑回归模型
1.1.1 核心思想
当线性回归模型生成的结果是一个连续且无界限的数值时(即其取值范围不受限制),是否有一种方法能够将其转换为有助于判断的指标?反过来思考这个问题的话,则会发现若输出结果位于(0,1)区间内(例如表示概率),问题就变得非常直观了:这时我们可以直接应用sigmoid函数(如上所示):

如果把sigmoid函数图像画出来,是如下的样子:

通过观察函数图像可知,在自变量 z 等于 0 时(即 z=0 ),该函数 y=g(z) 的取值为 \frac{1}{2} ;当自变量 z 逐渐减小时(即随 |z| 增大),其对应的函数值趋近于零;而当自变量 z 不断增大时(即 |z| 趋向于无穷大),对应的函数值则趋近于一;这正好对应了一个概率范围。
为此建立线性回归模型Y = W^T X,则其输出结果Y = g(W^T X)中之g(z)即为S型激活函数。
1.1.2 判定边界
该阈值为零是一个决策边界,在其大于零或小于零时,逻辑回归模型会根据其所属类别作出相应的分类判断
1.1.3 代价函数与梯度下降
逻辑回归的代价函数:

用迭代公式表示出来的最小化 J(θ ) 的梯度下降算法如下:

1.2 决策树模型
1.2.1 ID3算法
ID3算法的核心是在基于决策树的每个节点中遵循信息增益标准选择特征,并通过递归的方法构建决策树
具体方法是:
- 以根节点为起点进行初始评估,在各个候选分割属性中选择具有最大信息增益值的属性作为当前节点的关键划分依据;
- 根据该属性的不同取值范围划分出相应的子节点;
- 然后继续对每个子节点按照同样的原则进行递归处理;
- 直至剩余可选属性中各候选属性相对于当前节点的信息增益均较低或者无法提供有效的区分度为止;
- 最后得到一个完整的决策树。
ID3相当于用极大似然法进行概率模型的选择。
1.2.2 决策树可视化
可视化需要用到关于Matplotlib的函数:
- 计算决策树叶子节点的数量
- 统计决策树的深度信息
- 绘制节点位置信息图
- 标注有向边属性值的信息
- 绘制完整的决策树图谱
- 生成完整的可视化界面(createPlot)
1.3 GBDT模型
GBDT模型是一个集成模型,是很多CART树的线性相加。
GBDT模型采用以下形式表示,在每一轮次t中使用f_t(x)表示当前轮次的模型,在每一棵决策树中使用h_t(x)进行建模;具体定义如下。

提升树采用前向分步算法。第t步的模型由第t-1步的模型形成,可以写成:

损失函数自然定义为这样的:

尽管整体思路较为清晰明了,在每一步骤都需要解决的问题是如何选择适合添加的具体树型确实存在挑战性。具体而言,在每一轮迭代中所拟合的对象是当前损失函数相对于模型估计值的负梯度方向。即,在每一轮迭代中所拟合的对象是当前损失函数相对于模型估计值的负梯度方向。对于每个样本点(i),其对应的损失函数L(y_i, f_t(x_i))关于f_t(x_i)的一阶导数即为L对f_t(x_i)的变化率;为了最小化损失函数L的整体风险,在每一轮迭代中我们都需要找到能够最好地减少当前损失的那个方向;为了实现这一目标,在每一轮迭代中我们需要沿着这个方向不断调整我们的模型参数;具体来说,在每一轮迭代中我们通过最小化关于f_t(x_i)的一个二次展开式来进行求解;最终得到的结果就是我们这一轮迭代所要学习的那个新的回归树节点;这个过程持续直到达到预设的最大迭代次数或者满足某种停止条件为止


通过(xi, rti)(i=1到m),我们可以构建一棵基于CART算法的回归树模型,并得到第t棵这样的回归树模型;每个叶节点对应的空间区域为Rtj(j=1到J)。其中J表示叶节点的数量。
对于每一个叶子节点中的样本来说,在该子树中我们计算得到每个叶子节点的最佳拟合输出值ctj

决策树拟合函数就得到了:

1.4 XGBoost模型
XGBoost 是由 k 个基模型组成的一个加法运算式:
\hat{y}_{i} = \sum_{t=1}^{k}f_t(x_i)
损失函数可由预测值\hat{y}_{i} 与真实值y_i 进行表示:
L=\sum_{i=1}^{n} l\left(y_{i}, \hat{y}_{i}\right)
通过算法流程图详解xgboost树的生成:

……
1.5 LightGBM模型
单边梯度抽样算法(GOSS)


互斥特征捆绑算法(EFB)
捆绑特征:
- 首先将所有特征视为图中的各个顶点。
- 接下来根据节点度对各特征进行降序排列。
- 对于每个特征:
- 遍历现有的特征簇集合,
- 如果发现该特征求加入某一个特定的簇所带来的矛盾数不超过设定阈值,则将其归入该簇;
- 若无法融入现有任何一个簇,则创建新簇并将其纳入。

2、模型对比与性能评估
2.1 逻辑回归
-
优势
-
训练速度较快,在实际应用中表现出较高的效率;
-
计算复杂度主要取决于特征的数量;
-
模型具有良好的可解释性;通过查看各特征的权重值,可以看出不同特征对结果的影响程度;
-
适用于解决二分类任务;无需对输入特征进行标准化处理;
-
所需内存空间相对较少;仅需存储各维度的原始数据值;
-
不足
-
在应用逻辑回归模型时需对缺失值与异常值进行预处理;
-
虽然无法利用Logistic回归解决非线性问题
-
因模型结构特点使得其难以应对多重共线性数据
-
其准确率相对较低
2.2 决策树模型
- 优势
- 简洁明了,在实际应用中表现出色
- 其结构易于呈现和理解
- 数据无需经过任何预处理步骤即可使用
- 不涉及特征缩放(归一化)过程
- 缺失值无需特别处理即可直接建模
- 能够有效处理离散型数据
- 同时也能应对连续型变量的情况
该模型存在以下不足之处:
- 决策树模型在训练过程中容易出现过拟合现象
- 这会导致模型在面对新数据时表现不佳
- 通过适当的剪枝处理可以有效缓解这一问题
- 该算法基于贪心策略逐步构建决策树
- 这一特点可能导致最终得到的决策树仅能捕捉到局部最优解
2.3 集成模型集成方法
集成方法主要包含Bagging和Boosting两种技术。这两种方法都旨在将现有的分类或回归算法通过特定的方式结合起来,并结合在一起从而形成一个更为强大的分类模型。它们都采用将多个分类器整合为一个统一的分类模型的方法,并且尽管具体的实现方式有所不同但最终会带来不同的性能表现。
典型的基于Bagging思想的集成模型包括随机森林;而基于Boosting理论的集成方法则包含Adaboost、梯度提升树(GBDT)、XgBoost以及LightGBM等几种方法。
Baggin和Boosting的区别总结如下:
- 样本选择:Bagging方法中训练集采用有放回的方式选取,在这种情况下各轮训练集之间相互独立;而Boosting方法在每一轮中都需要保持相同的训练集,在此过程中仅会对分类器中的各个样本赋予不同的权重值;这些权重值是根据上一轮模型的分类结果进行动态调整的
- 样例权重:Bagging方法采用等权采样策略,在这种情况下每个样本被选中的概率均相等;相反Boosting方法会根据每个样本的历史分类错误率来动态调整其对应的权重值;若某个样本的历史错误率较高,则其对应的权重值也会相应增大
- 预测函数:在Bagging方法中各子模型之间的预测过程是完全等权的;而在Boosting方法中每个子模型都会被赋予相应的训练权值;对于那些在分类任务中表现较为优秀的子模型来说其对应的权值也会相对较高
- 并行计算:Bagging方法能够实现各子模型间的完全并行化处理;而Boosting方法由于其构建过程需要依次依赖前一个模型的结果因此无法实现并行化操作
2.4 模型评估方法
-
在数据集划分过程中需遵循以下原则:
-
训练集与测试集的分布情况要与样本真实分布一致,并且训练集合测试集合之间需保持互斥性。
-
训练集合测试集合都需保证是从样本真实分布中独立同分布采样而得。
-
三种分类数据的方法
-
留出法(适用于数据量充足或数量较少但能有效分隔的情况)
- 留出法通过将整个数据集合D划分为两个互斥的部分:一个部分用于训练模型(S),另一个部分用于评估模型性能(T)。特别强调,在划分过程中应尽量保持样本分布的一致性以避免引入额外偏差影响结果评估。为此通常采用分层采样的方法来进行抽样操作。
- 一般而言,在这种情况下会选取大约2/3至4/5的数据作为训练集,并剩余部分作为测试集。
-
交叉验证法(数据量充足)
- 采用k折交叉验证的方法时会将数据集\mathcal{D}划分为k个子集
- 其中前k-1个子集用作训练数据
- 这样一来便能生成k组不同的训练与测试集合
- 并最终计算这k组测试结果的平均值
- 而这种划分过程仍遵循分层采样的原则
- 不同选择下的交叉验证方法对于评估结果的影响主要体现在其稳定性与可靠性上
- 当取值为1时则被称为留一法
-
自助法 (当数据集较小时且难以进行有效的划分时)
- 从数据集D中有放回地随机抽取样本作为训练集。
- 这种方法允许某些样本在训练集中反复出现。
- 其中未被选中的比例约为36.8%。
- 自助法与留出法及交叉验证法不同在于其采用的是有放回式的重复抽样方法。
2.5 模型评估标准

如果模型A的ROC曲线全面覆盖了模型B的ROC曲线,则我们认定模型A的表现更为优异;
若两条曲线相交则需通过比较ROC曲线下与X、Y轴围成的区域面积来进行评估判断,在此过程中面积越大则表明该模型的综合性能更好;这一具体数值即为AUC值。
三、学习问题与解答
除了阐述这些模型的基本理论外,在此之外还将会讲解相关的算法细节。由于实际操作过程中存在一定的复杂性和技术门槛,在这种情况下解决这个问题的方法只能是多读文章并深入研究其他人的操作经验
四、学习思考与总结
本次学习主要涉及金融分控领域常用模型及其建模流程和参数调优过程。本次学习要求具备一定的数学基础和理解能力;否则将会感到相当吃力。(例如我曾如此)若能掌握这些模型及相关算法,则实属一件令人钦佩的事;仍需继续加倍努力!
学习的文章:
《逻辑回归》1:
《决策树模型》2:
梯度提升树(GBDT)模型3:
XGBoost算法4:
LightGBM算法5:
CatBoost算法6:
这篇文章是博主「寒小阳」创作的原创内容。该作品遵循 Creative Commons Attribution-ShareAlike 4.0 国际许可协议(CC 4.0 BY-SA),转载时请注明出处并附上原文链接及版权声明
本文是博主「Jack-Cui」发布的个人作品,并遵照CC 4.0 BY-SA版权协议发布,请转载时注明出处并附上原文链接
知乎博主:'小雨姑娘'深入解析梯度提升树算法的核心机制及其在机器学习中的应用价值
此篇文章由博主「Miracle8070」独立创作。特别鸣谢他的辛勤劳动与无私奉献!
这篇文章是博主「Miracle8070」最初创作的作品。依照Creative Commons Attribution-ShareAlike 4.0国际许可协议发布,请转载时须包含原文出处链接及本声明的内容
官方账号Microstrong发布的官方文章《全面解析CatBoost技术》 原文链接:https://mp.weixin.qq.com/s/xloTLr5NJBgBspMQtxPoFA ↩︎
