【AI基础:机器学习】11、决策树指南:从ID3到随机森林,原理、剪枝与实战图解

决策树完全指南:从ID3到随机森林,原理、剪枝与实战图解

在这里插入图片描述

“步步为营,有章可循”——决策树以人类可理解的“提问-决策”逻辑,成为机器学习中最直观的算法之一。从判断“是否购买某套房”(根节点:价格≤100万?→内部节点:面积≥80㎡?→叶节点:买/不买),到复杂的医疗诊断,决策树通过层层划分实现精准分类或回归。

本文将系统拆解决策树的核心原理、主流算法(ID3/C4.5/CART)、剪枝策略与集成扩展(随机森林),用图解和代码揭示其“简单结构解决复杂问题”的核心逻辑。

一、决策树的基本结构:像“流程图”一样做决策

决策树的结构模拟人类做决策的过程,由节点分支组成,核心是通过“特征测试”将数据逐步细分,最终落到代表决策结果的叶节点。

1.1 核心组件

  • 根节点:树的起点,包含全部训练样本(如“所有待判断是否购买的房屋”)。
  • 内部节点:特征测试条件(如“价格≤100万?”“房龄≤5年?”),每个内部节点对应一个特征。
  • 叶节点:最终决策结果(分类问题为类别标签,如“买”;回归问题为连续值,如“预测房价120万”)。
  • 分支:连接节点的路径,代表特征测试的结果(如“是”→左分支,“否”→右分支)。

1.2 决策过程示例

以“是否贷款给申请人”为例,决策树的判断流程如下:

  1. 根节点:测试“收入≥10万/年?”
    • 是→进入左子节点(测试“有无房产?”);
    • 否→进入右子节点(测试“征信是否良好?”)。
  2. 左子节点(有房产?):
    • 是→叶节点“贷款”;
    • 否→叶节点“拒绝”。
  3. 右子节点(征信良好?):
    • 是→叶节点“贷款”;
    • 否→叶节点“拒绝”。

图示1:决策树结构示意图

[根节点:收入≥10万/年?]
    ├─ 是 → [内部节点:有无房产?]
    │       ├─ 是 → [叶节点:贷款]
    │       └─ 否 → [叶节点:拒绝]
    └─ 否 → [内部节点:征信良好?]
            ├─ 是 → [叶节点:贷款]
            └─ 否 → [叶节点:拒绝]

核心目标:通过特征测试的层级划分,使最终叶节点中的样本尽可能“纯”(即属于同一类别或数值接近)。

二、决策树的构建:贪心递归的“三步法”

决策树的训练过程是自上而下、贪心递归的划分过程,核心包括三个步骤:特征选择→树生成→剪枝。

2.1 第一步:特征选择——选“最能区分样本”的特征

特征选择的目标是找到“划分后子节点纯度提升最大”的特征。衡量纯度的指标主要有熵(信息增益)信息增益比基尼系数

(1)熵与信息增益(ID3算法)
  • 熵(Entropy):衡量样本集合的“混乱程度”,值越小纯度越高。
    对包含K个类别的样本集D,熵的计算公式为:
    H(D)=−∑k=1Kpklog⁡2pkH(D) = -\sum_{k=1}^K p_k \log_2 p_kH(D)=k=1Kpklog2pk
    其中p_k是第k类样本在D中的占比。
    • 若所有样本属于同一类(纯节点),H(D)=0
    • 若两类样本各占50%(最混乱),H(D)=1(二分类场景)。
  • 信息增益(Information Gain):划分后熵的减少量,反映特征对纯度的提升能力。
    用特征AD划分为V个子集{D_1, D_2, ..., D_V},信息增益为:
    Gain(D,A)=H(D)−∑v=1V∣Dv∣∣D∣H(Dv)\text{Gain}(D, A) = H(D) - \sum_{v=1}^V \frac{|D_v|}{|D|} H(D_v)Gain(D,A)=H(D)v=1VD
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

无心水

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

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

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

打赏作者

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

抵扣说明:

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

余额充值