决策树的初体验

接下来是三种经典的决策树算法的学习过程:

Step1:信息熵与信息增益
信息熵(information_entropy):是度量样本集合纯度最常用的一种指标,假定当前样本集合D中第k类样本所占的比例为pk(k=1,2,…,|y|),则D的信息熵定义为:
这里写图片描述
Ent(D)的值越小,则D的纯度越高。
假定离散属性a有V个可能的取值{这里写图片描述},若使用a来对样本集D进行划分,会产生V个分支结点,其中第v个分支节点包含了D中所有在属性a上取值为这里写图片描述的样本,记为这里写图片描述。通过信息熵公式可以计算出这里写图片描述的信息熵,再考虑到不同的分支节点所包含的样本数不同,给分支节点赋予权重|这里写图片描述|/|D|,即样本数越多的分支节点的影响越大。于是,计算出用属性a样本集D进行划分所获得的“信息增益”(information_gain):
这里写图片描述
一般而言,信息增益越大,则意味着使用属性a来进行划分所获得的“纯度提升”越大。因此,我们可以用信息增益来进行决策树的划分属性选择。ID3决策树学习算法就是以信息增益为准则来选择划分属性。

Step2:ID3算法的弊端以及改进
由信息熵以及信息增益的计算公式,不难知道,信息增益准则对可取值数目较多的属性有所偏好。当每个分支结点包含非常少甚至只有一个样本,这些分支节点的纯度达到最大。然而,这样的决策树不具有泛化能力,无法对新样本进行有效预测。比如,数据的“编号”的信息增益是最大的,但没实际意义。于是,著名的C4.5决策树算法出现了。

Step3:C4.5算法以及信息增益率
信息增益率的公式:
这里写图片描述,
其中
这里写图片描述
称为属性a的”固有值”。属性a的可能取值数目越多(即V越大),IV(a)的值通常会越大。
需要注意的是:信息增益率准则对可取值数目较少的属性有所偏好。因此,C4.5算法并不是直接选择增一律最大的候选划分属性,而是使用了一个启发式:先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。

Step4:C4.5的优点
(1)可以处理连续值。
由于连续属性的可取值数目不再有限,因此,不能直接根据连续属性的可取值对结点进行划分。而C4.5可以实现将连续属性离散化:
给定样本集D和连续属性a,假定a在D上出现了V个不同的取值,将这些值进行排序,记为{这里写图片描述}。基于划分点t可将D分为子集这里写图片描述这里写图片描述。其中这里写图片描述包含那些在属性a上取值不大于t的样本,而这里写图片描述则包含那些在属性a上取值大于t的样本。显然,对相邻的属性这里写图片描述这里写图片描述来说,t在区间这里写图片描述中取任意值所产生的划分结果相同。因此,对连续属性,我们可以考察包含n-1个元素的候选划分点集合
这里写图片描述,即选择相邻的属性值的中位点作为划分点,以此选取最优划分点进行样本集合的划分。如下公式:
这里写图片描述
其中Gain(D,a,t)是样本集D基于划分点t二分后的信息增益。于是,我们就可以选择使Gain(D,a,t)最大化的划分点。需要注意的是,与离散属性不同,若当前结点划分属性为连续属性,该属性还可以作为其后代结点的划分属性。

(2)可以处理缺失值。在有缺失值的情况下,需要解决两个问题:
如何在属性值缺失的情况下进行划分属性选择?对于给定的训练集D和属性a,令这里写图片描述表示D中在属性a上没有缺失值的样本子集。显然,我们只能根据这里写图片描述来判断属性a的优劣。这种情况对应的信息增益为:
这里写图片描述
其中,
这里写图片描述
直观地看,对属性a,这里写图片描述表示无缺失值样本所占的比例,这里写图片描述表示无缺失值样本中第k类所占的比例,这里写图片描述则表示无缺失值样本中在属性a上取值这里写图片描述的样本所占的比例。
给定划分属性后,若样本在该属性上的值缺失,如何对样本进行划分?若样本x在划分属性a上的取值已知,则将x划入与其取值相对应的子结点,且样本权值在子结点中保持为这里写图片描述。若样本x在划分属性a上的取值未知,则将x同时划入所有子结点,且样本权值在与属性值这里写图片描述对应的子结点中调整为这里写图片描述这里写图片描述简单来说,就是让同一个样本以不同的概率划分到不同的子结点中。
(3)在决策树的构造过程中对树进行剪枝。采用Pessimistic Error Pruning(PEP,悲观剪枝)。

Step5:CART算法与基尼指数
Classification And Regression Tree,即分类回归树算法,简称CART算法。CART决策树采用“基尼指数”来选择划分属性,数据集D的纯度可用基尼值来度量:
这里写图片描述
直观来说,Gini(D)反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率。因此,Gini(D)越小,则数据集D的纯度越高。属性a的基尼指数的定义为:
这里写图片描述
因此,CART算法是在候选属性集合中,选择那个使得划分后基尼指数最小的属性作为最优划分属性。

Step6:为什么说CART是二叉树,而ID3和C4.5不是?
CART算法是一种二分递归分割技术,把当前样本划分为两个子样本,使得生成的每个非叶子结点都有两个分支,因此CART算法生成的决策树是结构简洁的二叉树。由于CART算法构成的是一个二叉树,它在每一步的决策时只能是“是”或者“否”,即使一个feature有多个取值,也是把数据分为两部分。而ID3和C4.5则不具备这个性质,因此不是二叉树。

Step7:CART算法的具体流程
CART处理连续属性的过程与C4.5类似,不过是选择划分后基尼指数最小的属性作为最优化分属性。处理离散属性时,需要依次把属性集划分为不重复的两类,然后同样选择划分后基尼指数最小的属性作为最优化分属性。举一个比较常见的例子,如下图所示:
                           这里写图片描述

图中,有房情况和婚姻状况是离散值,而年收入是连续值。
对于有无房子的离散属性的计算结果如下:
                          这里写图片描述

对于婚姻状况的离散属性的计算结果如下:
                          这里写图片描述

对于收入这一连续属性的计算结果如下:
                          这里写图片描述
最后,选择基尼指数最小的属性作为候选划分属性,并进行递归划分。

Step8:防止过拟合的常见方法:剪枝
将复杂的决策树进行简化的过程称为剪枝,它的目的是去掉一些节点,包括叶节点和中间节点。剪枝常用的方法有预剪枝和后剪枝两种。
(1)预剪枝的优缺点:预剪枝是在构建决策树的过程中,提前终止决策树的生长,从而避免过多的节点的产生。预剪枝使得决策树的很多分支没有“展开”,不仅降低了过拟合的风险,还显著减少了决策树的训练和测试的时间开销。但是,有些分支的当前划分虽不能提升泛化性能,甚至可能使泛化性能暂时降低,但是在其基础上进行的后续话跟却有可能使得泛化性能显著提升。即预剪枝容易达成局部最优解。
(2)后剪枝的优缺点:后剪枝就是在决策树构建完后再去掉一些节点,通常比预剪枝决策树保留更多的分支。其欠拟合风险小,泛化性能往往优于预剪枝决策树。但是其训练时间开销比未剪枝和预剪枝决策树要大得多。常见后剪枝方法有四种:悲观错误剪枝(PEP)、最小错误剪枝(MEP)、代价复杂度剪枝(CCP)和基于错误的剪枝(EBP)。
(3)C4.5采用Pessimistic Error Pruning(PEP,悲观剪枝)。该算法被认为是当前决策树后剪枝算法中精度比较高的算法之一,但是也有存在缺陷。首先,PEP算法是唯一使用Top-Down剪枝策略,这种策略会导致与先剪枝出现同样的问题,将该结点的某子节点不需要被剪枝时被剪掉;另外PEP方法会有剪枝失败的情况出现。
虽然PEP方法存在一些局限性,但是在实际应用中表现出了较高的精度,。另外,PEP方法不需要分离训练集合和验证集合,对于数据量比较少的情况比较有利。再者,其剪枝策略比其它方法相比效率更高,速度更快。因为在剪枝过程中,树中的每颗子树最多需要访问一次,在最坏的情况下,它的计算时间复杂度也只和非剪枝树的非叶子节点数目成线性关系。
4)CART算法使用了Cost-Complexity Pruning(CCP、代价复杂度)。

参考资料:周志华_《机器学习》

<think>嗯,用户现在转向了银行风控决策树的具体技术问题,这和我之前回答的支付验证流程有知识关联但属于不同层面。用户引用的决策树材料虽然学术化,但结合其历史提问风格,ta更关注的是实际风控场景的实现逻辑而非纯算法理论。 从引用[4]提到的ID3和CART算法切入很合适,需要强调银行场景的特殊性:金融数据的高维稀疏性(如交易记录)要求算法能处理大量二元特征,这点CART的二叉树结构比ID3更高效[^4]。但要注意用户可能混淆了算法选择和应用落地的区别——银行实际系统多为混合模型,决策树常作为初级过滤器。 风险预警的案例需要具体化,比如可以描述:"当用户单笔转账金额 > 5万元 且 收款账户属地与登录地距离 > 800公里 且 设备更换时间 < 24小时",这样的规则树节点就构成典型的三级风控[^1]。不过要避开具体阈值数字以防误导,重点说明特征组合逻辑。 用户隐含的需求可能是想了解银行如何平衡安全与体验,这体现在剪枝策略部分。需要引用[2][3]提到的过拟合问题:银行会剪掉"转账时间=凌晨3点"这类过度具体的节点,转而用"非活跃时段"这样的抽象特征[^2][^3]。可以补充一个反例——某银行曾因决策树叶节点过多导致误拦截率上升30%的公开案例。 最后的技术实现部分要注意尺度,SQL示例只展示特征字段不要暴露表结构,Python代码应规避真实银行API参数。集成模型可以提XGBoost但需说明在风控中决策树仍是可解释性要求最高的基础模块[^3]。 </think>以下是银行风控决策树的系统性解析,结合技术原理与实际应用场景: --- ### 一、决策树在银行风控中的核心原理 1. **规则化风险判断** 通过树形结构将风控规则转化为可执行的逻辑路径,典型决策流程: ``` IF 账户年龄 < 1年 AND 单笔交易额 > 月均收入×3 AND 收款方不在常用名单 THEN 触发二级验证[^1][^4] ``` 2. **关键算法选择** | 算法 | 分裂标准 | 银行场景优势 | 局限性 | |------|----------------|---------------------------|----------------------| | ID3 | 信息增益 | 适合多类别特征(如职业分类) | 对连续值处理弱[^4] | | CART | 基尼不纯度 | 高效处理数值型数据(交易金额)| 可能忽略弱相关特征[^4] | 3. **数学表达** 基尼指数计算公式(CART算法核心): $$ Gini(p) = 1 - \sum_{k=1}^{K} p_k^2 $$ 其中 $p_k$ 为第 $k$ 类样本在节点中的比例[^4]。 --- ### 二、典型应用场景及实现 1. **信用评估** ```mermaid graph TD A[申请金额>50万] -->|是| B[资产负债比>70%?] A -->|否| C[直接通过] B -->|是| D[拒绝] B -->|否| E[收入证明核查] ``` 2. **欺诈交易拦截** 特征工程示例: - 节点分裂变量:$ \Delta t = |本次交易时间-上次交易时间| $ - 高风险路径:$\Delta t < 5\text{分钟} \quad \text{AND} \quad \text{地理位置突变} > 500\text{km}$[^1] 3. **动态额度调整** 使用递归划分: ```python # 伪代码:基于消费行为的额度调整树 if avg_monthly_consumption > 20000: if debt_ratio < 0.3: increase_limit(30%) # 高消费低负债客户 else: freeze_limit() # 高负债风险 elif credit_score > 750: offer_temp_limit() # 优质客户临时提额 ``` --- ### 三、银行场景的特殊构建方法 1. **特征工程重点** - **强金融属性特征**:现金流波动率 $ \sigma = \sqrt{\frac{1}{N}\sum_{i=1}^{N}(x_i-\mu)^2} $ - **时序关联特征**:近30天夜间交易占比 - **交叉特征**:转账金额 × 对方账户陌生度[^2] 2. **剪枝策略优化** 为防止过拟合银行采用的方案: - **代价复杂度剪枝**:引入复杂度参数 $\alpha$ 平衡准确率与规则数量 - **业务规则约束**:人工设定最小样本分裂阈值(如单节点至少含5000条样本)[^3] 3. **混合建模实践** ```mermaid graph LR A[原始交易数据] --> B(决策树初筛) B --> C{低风险?} C -->|是| D[自动放行] C -->|否| E[XGBoost深度评估] E --> F[人工复核] ``` --- ### 四、银行风控树的演进方向 1. **可解释性与深度学习的平衡** 采用 **树模型前置+神经网络后端** 架构,满足监管对规则透明性的要求[^3] 2. **联邦学习应用** 在多银行联合风控中,通过加密技术共享决策树结构而不泄露原始数据: $$ \text{共享信息} = \{\text{树深度}, \text{分裂特征索引}, \text{阈值范围}\} $$ 3. **实时动态更新** 基于流式数据的增量学习:每小时更新叶节点统计量 $ \text{节点风险值} = \frac{\text{当期欺诈笔数}}{\text{总交易笔数}} $ ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值