【机器学习】05_决策树

一、 决策树基本概念

决策树是一种基于规则进行决策的监督学习方法

  • 模型结构 :由根节点(Root Node)、内部节点(Internal Node)和叶节点(Leaf Node)组成
    • 内部节点:对应属性测试(如:年龄是否 > 30)
    • 叶节点:对应最终的决策结果(如:见或不见、买或不买)
  • 学习本质:从训练数据中提取潜在的判断规则,将特征空间划分为互不相交的单元
  • 构建策略 :采用自顶向下的贪心算法,通过递归划分数据集,直到满足停止条件

二、 划分选择:核心算法与公式解析

决策树构建的关键在于如何选择"最优划分属性"。课件讲解了三种经典算法及其度量指标:

1. ID3 算法:基于信息增益(Information Gain)

ID3 核心是使用信息熵度量样本纯度 。

  • 信息熵公式:Ent(D)=−∑i=1kpilog⁡2piEnt(D) = -\sum_{i=1}^{k} p_i \log_2 p_iEnt(D)=−i=1∑kpilog2pi
    • 通俗解释:熵是衡量系统"混乱程度"的指标。如果一个集合里全是同一类样本,熵为 0(最纯);如果各类样本均匀混合,熵最大
  • 信息增益公式:Gain(D,a)=Ent(D)−∑v=1V∣Dv∣∣D∣Ent(Dv)Gain(D, a) = Ent(D) - \sum_{v=1}^{V} \frac{|D^v|}{|D|} Ent(D^v)Gain(D,a)=Ent(D)−v=1∑V∣D∣∣Dv∣Ent(Dv)
    • 通俗解释 :增益 = 划分前的熵 - 划分后的熵。增益越大,说明用属性 aaa 划分后,数据集的纯度提升越明显

2. C4.5 算法:基于增益率(Gain Ratio)

ID3 倾向于选择取值较多的属性(例如"学号"),C4.5 引入了**固有值(Intrinsic Value)**作为分母进行平衡

  • 公式 :Gain_ratio(D,a)=Gain(D,a)IV(a)Gain\_ratio(D, a) = \frac{Gain(D, a)}{IV(a)}Gain_ratio(D,a)=IV(a)Gain(D,a)

3. CART 算法:基于基尼指数(Gini Index)

CART 既能分类也能回归,且生成的树一定是二叉树

  • 基尼值公式Gini(D)=1−∑i=1kpi2Gini(D) = 1 - \sum_{i=1}^{k} p_i^2Gini(D)=1−i=1∑kpi2
    • 通俗解释:基尼值反映了从数据集中随机抽取两个样本,其类别不一致的概率。基尼值越小,纯度越高。CART 选择基尼指数最小的属性作为最优切分点

三、 剪枝处理:防止过拟合

由于决策树容易在训练集上"过度学习"导致泛化能力差,需要进行正则化,即剪枝

  • 前剪枝(Prepruning):在生成过程中,若划分不能带来正确率提升,则停止划分
  • 后剪枝(Postpruning):先生成完整的树,再从底向上评估,若剪掉分枝不降低准确率则执行剪枝。通常后剪枝效果更好
  • 代价函数(晦涩点解析):Cα(T)=∑t=1∣T∣NtEnt(t)+α∣T∣C_{\alpha}(T) = \sum_{t=1}^{|T|} N_t Ent(t) + \alpha |T|Cα(T)=t=1∑∣T∣NtEnt(t)+α∣T∣
    • 解析 :该公式分为两部分,左边代表"模型对训练数据的拟合程度",右边 α∣T∣\alpha|T|α∣T∣ 代表"模型的复杂度(叶子节点数)"。超参数 α\alphaα 越大,越倾向于简单的树,从而提高泛化能力

四、 连续属性与缺失值处理

  • 连续属性 :通常使用二分法离散化。将数值从小到大排序,取每两个相邻值的中位数为候选划分点,计算信息增益,选最优者
  • 缺失值:计算信息增益时,仅基于无缺失样本进行,并乘以一个权重系数(无缺失样本占比)

五、 回归决策树

当用于回归任务时,CART 被称为"最小二乘回归树" 28。

  • 原理 :它将特征空间划分为多个区域,每个区域的预测值 c^\hat{c}c^ 是该区域内所有样本标记的均值
  • 划分准则 :寻找最优切分特征和切分点,使得两个划分区域的平方误差和最小

知识点总结表

特性 ID3 C4.5 CART
度量指标 信息增益 31 增益率 32 基尼指数 33
树结构 多叉树 34 多叉树 二叉树 35
任务类型 分类 分类 分类 & 回归 36
属性处理 离散值 离散 & 连续 37 离散 & 连续
相关推荐
老蒋每日coding1 小时前
AI Agent 设计模式系列(九)——学习和适应模式
人工智能·学习·设计模式
学习3人组1 小时前
大模型轻量化调优(昇腾平台方向)岗位技术名词拆解
人工智能·python
知乎的哥廷根数学学派1 小时前
基于物理引导和不确定性量化的轻量化神经网络机械退化预测算法(Python)
人工智能·pytorch·python·深度学习·神经网络·算法·机器学习
机器学习之心1 小时前
CEEMD-KPCA-PINN多变量时序光伏功率预测!互补集合经验模态分解+核主成份降维+物理信息神经网络,MATLAB代码
神经网络·机器学习·matlab·多变量时序光伏功率预测·物理信息神经网络
拉普拉斯妖1082 小时前
DAY49 CBAM注意力
人工智能·深度学习
永远都不秃头的程序员(互关)2 小时前
【K-Means深度探索(五)】不止欧氏距离:K-Means中距离度量那些事儿
算法·机器学习·kmeans
jay神2 小时前
手势识别数据集 - 专业级目标检测训练数据
人工智能·深度学习·yolo·目标检测·计算机视觉
海绵宝宝de派小星2 小时前
AI发展简史与里程碑事件
人工智能·搜索引擎
海绵宝宝de派小星2 小时前
什么是人工智能?AI、机器学习、深度学习的关系
人工智能·深度学习·机器学习·ai