机器学习【决策树】

一、基础概念

1、核心定义

        决策树是一种以树状结构为载体的预测模型,它通过对数据特征的层层判断(如 “特征 A 是否满足条件?”),将复杂数据集逐步拆分到不同分支,最终在叶节点给出明确的预测结果(分类任务为类别,回归任务为数值)。

简单说,决策树就像一个 “流程图”:从根节点开始,每一步根据某个特征的取值做判断,沿着不同分支向下,直到叶节点得到结论。

2、树的基本结构

  • 根节点(Root Node):树的起点,包含全部训练样本。
  • 内部节点(Internal Node):树的中间节点,代表一次 “特征判断”(如 “年龄 > 30?”“性别是否为男?”),每个内部节点会根据判断结果将样本分配到不同子节点。
  • 叶节点(Leaf Node):树的终点,代表最终的预测结果(如分类任务中的 “批准贷款”“拒绝贷款”,回归任务中的 “房价 50 万”)。
  • 分支(Branch):连接节点的边,代表特征判断的结果(如 “是”“否”“≤30”“>30”)。

3、核心原理

  • 核心逻辑是 “分而治之”,每次选择最优特征拆分数据,让拆分后的数据更 “纯粹”(同类样本集中)。
  • 拆分依据是量化的纯度指标,避免随机拆分。

二、关键步骤

1、特征选择:纯度指标量化

         a. 回归树通过计算误差(MSE,MAE,RMAE等)筛选最优拆分特征。

         b. 分类树用信息熵、信息增益、信息增益比(ID3/C4.5 算法)或基尼系数(CART 算法)筛选最优拆分特征。

2、树的构建:递归拆分的完整逻辑

决策树的构建是一个 “自顶向下、贪心递归” 的过程,核心目标是让每个子节点的样本尽可能 “纯”。具体步骤如下:

2.1. 初始状态:根节点

根节点包含全部训练样本,此时需要解决第一个问题:“用哪个特征拆分,才能让子节点最纯?”

2.2. 特征选择与数据拆分
  • 特征选择:计算每个特征的 “纯度提升指标”(如上述的计算误差,信息熵、信息增益、基尼系数下降量),选择指标最优的特征作为当前节点的拆分依据。

    • 例:假设当前节点有 100 个样本(60 个 “批准贷款”,40 个 “拒绝”),计算 “信用分”“收入”“年龄” 三个特征的信息增益,发现 “信用分 > 600” 的信息增益最大(拆分后左子树 80 个样本全为 “批准”,右子树 20 个全为 “拒绝”),则选择 “信用分” 作为当前节点的拆分特征。
  • 数据拆分:根据选中特征的取值,将当前节点的样本分配到子节点:

    • 离散特征(如性别:男 / 女):每个取值对应一个子节点(如 “男”→左子节点,“女”→右子节点)。
    • 连续特征(如年龄):需要确定一个阈值(如 30 岁),将样本分为 “≤阈值” 和 “> 阈值” 两个子节点(CART 树固定为二叉拆分,ID3/C4.5 可多叉)。
2.3. 递归过程:子节点重复拆分

对每个新生成的子节点,重复上述 “特征选择→数据拆分” 过程:

  • 若子节点样本已足够 “纯”(如全为 “批准”),则停止拆分,成为叶节点,输出该类别。
  • 若子节点仍有混合样本,则继续选特征拆分,直到满足终止条件。
2.4. 终止条件(停止拆分的判断)

递归不能无限进行,否则会 “记住” 训练数据的所有细节(包括噪声),导致过拟合。终止条件通常有:

  • 纯度达标:节点内所有样本属于同一类别(分类树),或目标值的方差 / 均方误差小于阈值(回归树)。
  • 无特征可用:所有特征已用于拆分,或剩余特征无法进一步提升纯度(如特征取值全相同)。
  • 样本量太少:节点内样本数小于设定阈值(如≤5 个),即使不纯也停止拆分(避免因少量样本拆分出无意义的分支)。

3、剪枝优化:解决 “过拟合” 的关键手段

未剪枝的决策树容易长得 “枝繁叶茂”—— 对训练数据拟合得极好(准确率接近 100%),但对新数据(测试集)表现很差(过拟合)。剪枝的本质是去除 “冗余分支”,降低树的复杂度,具体分为两种方式:

3.1. 预剪枝(Pre-pruning):“长出来之前就限制”

在树的构建过程中提前停止分支生长,避免树过深。核心是设定 “生长门槛”,常见方法:

  • 限制最大深度:比如设定树的最大深度为 5,当树的深度达到 5 时,即使子节点仍不纯,也停止拆分(强制作为叶节点)。
  • 限制最小样本数
    • 最小分裂样本数:若节点样本数小于该值(如 10),不允许拆分(避免用少量样本生成分支)。
    • 最小叶节点样本数:拆分后子节点的样本数若小于该值(如 5),则不拆分当前节点。
  • 限制纯度提升阈值:若用某个特征拆分后,纯度提升(如信息增益)小于设定阈值(如 0.01),则不拆分。

优点:简单高效,训练速度快(避免构建完整的树)。

缺点:可能 “过早停止”,导致模型欠拟合(没学到足够的模式)。

3.2. 后剪枝(Post-pruning):“长完之后再修剪”

先构建完整的决策树(允许过拟合),再从叶节点向上逐层删除 “无效分支”,保留对泛化有利的结构。核心是用验证集评估分支的必要性,常见方法:

  • 代价复杂度剪枝(CCP,CART 树常用):为每个分支定义 “代价”(树的复杂度,如节点数)和 “误差”(预测错误率),计算 “复杂度 - 误差” 权衡指标,删除 “增加复杂度但误差下降不明显” 的分支。
  • 错误率降低剪枝(REP):对每个叶节点的父节点(内部节点),尝试将其改为叶节点(即删除该父节点的所有子分支),若修改后验证集的错误率不变或降低,则保留删除(认为该分支是冗余的)。:假设某内部节点有两个子节点(叶节点),在验证集上,保留分支时错误率为 10%,删除分支(将该节点改为叶节点)后错误率仍为 10%,则删除分支(简化树结构,不影响性能)。

优点:剪枝更精准,通常泛化能力优于预剪枝(避免过早停止的风险)。

缺点:计算成本高(需先构建完整树,再逐枝评估)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小王不想wan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值