☰
机器学习之决策树原理与实战
2026/10/20 6:24:01 网站建设 项目流程

目录

  • 一、核心定位与直观理解
  • 二、核心原理:信息论驱动的分裂准则
  • 三、生长逻辑:递归分裂与停止条件
  • 四、剪枝逻辑:解决过拟合的核心手段
  • 五、几何意义与概率视角
  • 六、关键特性:优缺点与适用场景
  • 七、CART决策树端到端极简实战(风控分类场景)
  • 八、深刻总结:决策树的核心本质

一、核心定位与直观理解

  1. 本质定义
  • 决策树是一种监督学习方法,既可用于分类(分类树),也可用于回归(回归树)。它通过递归地将数据集按特征分裂成子集,构建出树状决策规则,最终在叶节点输出类别(分类)或连续值(回归)。
  1. 直观类比:专家决策流程
  • 金融风控中审批贷款的流程,就是天然的决策树:
  • 先看逾期次数: >3次 -> 直接拒绝
  • 逾期≤3次 -> 再看月收入 / 负债比: <1.5 -> 拒绝
  • 收入负债比≥1.5 -> 再看征信等级: A级 / B级 -> 通过,C级 -> 人工复核
  • 决策树就是把这种分层、递进、按特征分支的决策逻辑,用算法自动学习出来。
  1. 基本结构
  • 根节点:最顶层,包含全部训练样本
  • 内部节点:对应一个特征的分裂条件(如:逾期次数 > 3)
  • 分支:对应特征的取值(离散)或区间(连续)
  • 叶节点:最终决策结果(分类的类别、回归的预测值)

二、核心原理:信息论驱动的分裂准则

  • 决策树的核心问题是:每一步选哪个特征、按什么阈值分裂,才能让子集的“纯度”最高?
  • 答案由信息论给出,分类树和回归树的分裂准则不同,这是理解决策树的关键。
  1. 分类树的三大分裂准则
  • 分类树的目标是让分裂后的子集尽可能只含同一类别(纯度高),常用三种准则:
  • 信息熵(Entropy)与信息增益(ID3算法)
  • 信息熵:衡量集合的混乱程度,熵越大,类别越混杂。
  • 设集合D中第k类样本占比为pk,则熵为:
  • 极端情况:集合全为同一类别->H(D)=0(最纯);类别均匀分布->H(D)最大(最混杂)。
  • 信息增益:分裂后熵的减少量,减少越多,分裂效果越好。
  • 特征A对集合D的信息增益:
  • 其中Dv是特征A取第v个值的子集,|Dv|/|D|是子集权重。
  • ID3缺陷:
  • 仅支持离散特征,无法处理连续特征
  • 偏好取值多的特征(如:身份证号,分裂后子集纯度极高,但无泛化能力)。
  • 信息增益率(C4.5算法)
  • 为解决ID3偏好多值特征的问题,引入分裂信息(SplitInfo)做归一化:
  • 信息增益率:
  • 核心改进:惩罚取值过多的特征,同时支持连续特征离散化(二分法)、缺失值处理。
  • 基尼系数(Gini Index,CART 分类树)
  • CART(分类与回归树)是工业界最常用的决策树,分类树用基尼系数衡量纯度,计算更高效(无对数运算)。
  • 基尼系数:集合被随机分类的错误概率,值越小纯度越高。
  • 极端情况:全为同一类别->Gini(D)=0;均匀分布->Gini(D)=1-1/K。
  • 基尼增益:分裂后基尼系数的减少量,选择增益最大的特征与阈值分裂。
  • CART关键特性:
  • 二叉树结构(每次分裂仅分2支,无论特征是离散/连续);
  • 同时支持分类与回归;
  • 无缺失值内置处理(需提前预处理)。
  1. 回归树的分裂准则:均方误差(MSE)
  • 回归树的目标是让分裂后的子集预测值与真实值的误差最小,用均方误差作为分裂准则:
  • 其中y^-D是集合D的样本均值(叶节点的预测值)。
  • 选择使分裂后总MSE最小的特征与阈值:
  • (CART回归树为二叉分裂,仅分2个子集)

三、生长逻辑:递归分裂与停止条件

  • 决策树通过递归二分(CART)或多分(ID3/C4.5)生长,核心流程:
  • 从根节点(全量样本)开始,计算所有特征的分裂增益;
  • 选择增益最大的特征+最优阈值,分裂为子节点;
  • 对每个子节点重复步骤1-2,直到满足停止条件;
  • 叶节点输出结果:分类树输出多数类,回归树输出样本均值。
  • 常用停止条件(防止过拟合的前置手段):
  • 节点样本数小于阈值(如: <50),无需再分裂;
  • 节点纯度达到100%(全为同一类别);
  • 树的深度达到预设最大值(如:max_depth=10);
  • 所有特征已无分裂增益(信息增益/基尼增益为0)。

四、剪枝逻辑:解决过拟合的核心手段

  • 决策树极易过拟合:生长过深会记住训练集的噪声,泛化能力差。因此剪枝是决策树的必备步骤,分为预剪枝和后剪枝。
  1. 预剪枝(Pre-pruning)
  • 在树生长过程中提前停止,常用约束:
  • 限制最大深度(max_depth);
  • 限制叶节点最小样本数(min_samples_leaf);
  • 限制分裂节点最小样本数(min_samples_split);
  • 限制叶节点最大数量(max_leaf_nodes)。
  • 优点:计算效率高,训练快;缺点:可能欠拟合(过早停止丢失有效规则)。
  1. 后剪枝(Post-pruning)
  • 先让树完全生长,再自底向上剪掉冗余分支,常用代价复杂度剪枝(CCP):
  • 定义代价复杂度参数α,衡量剪枝的代价与

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询