机器学习(决策树2)

发布于:2025-08-20 ⋅ 阅读:(15) ⋅ 点赞:(0)
一、决策树算法
  1. ID3 算法
    • 核心概念:使用信息增益选择划分属性,信息增益是某个属性带来的熵增,其值越大,使用该属性划分获得的 “纯度提升” 越大。
    • 缺点:对可取值数目较多的属性有所偏好,例如最优划分为 “编号” 这类属性。
    • 示例数据:包含 7 条记录,涉及天气、温度、湿度、是否多云及是否出去玩等属性,用于演示算法应用。
  2. C4.5 算法
    • 核心概念:采用信息增益率(信息增益 ÷ 自身熵)来选择划分属性,以改进 ID3 算法的不足。
    • 示例数据:与 ID3 算法使用相同的 7 条记录数据。
  3. CART 算法
    • 核心概念:通过基尼指数衡量数据集纯度,基尼指数 Gini (D) 反映从数据集 D 中随机抽取两个样本,其类别标记不一致的概率,p 越大,Gini (D) 越小,数据集纯度越高。
二、连续值处理
  • 方法:采用贪婪算法,先对连续值进行排序,然后确定可能的分界点进行二分,这一过程实质是 “离散化”。
  • 示例:对于 Taxable Income 的连续值 60、70、75、85、90、95、100、120、125、220,有 9 个可能的分界点,可分割为如 TaxIn<=80 和 TaxIn>80,或 TaxIn<=97.5 和 TaxIn>97.5 等情况。
三、决策树剪枝策略
  1. 剪枝原因:决策树过拟合风险大,理论上可完全分开数据,需通过剪枝避免过拟合。
  2. 预剪枝
    • 定义:边建立决策树边进行剪枝的操作,更实用。
    • 方式:可通过限制深度、叶子节点个数、叶子节点样本数、信息增益量等进行剪枝。
  3. 后剪枝
    • 定义:建立完决策树后进行剪枝操作。
    • 衡量标准:最终损失 = 自身的 GINI 系数值 +α× 叶子节点数量。
      • α 越大,越不易过拟合,但结果可能欠佳。
      • α 越小,更注重结果好坏,过拟合可能较严重。
    • 示例:原分支 “色泽 =?” 剪枝前验证集精度 57.1%,剪枝后 71.4%,决策为剪枝;原分支 “纹理 =?” 剪枝前 42.9%,剪枝后 57.1%,决策为剪枝。
四、决策树代码实现
  • 函数DecisionTreeClassifier()用于创建决策树模型。
  • 主要参数

参数 说明
criterion 可选择 gini(基尼系数)或者 entropy(信息熵)
splitter 可选择 best(在所有特征中找最好的切分点)或者 random(在部分特征中找)
max_features 可设为 None(所有)、log2、sqrt、N
max_depth int or None, optional (default=None),设置决策树的最大深度,深度越大越易过拟合,推荐 5-20 之间
五、课堂练习
  • 任务:使用决策树对泰坦尼克号幸存者进行预测。

关键问题

  1. 问题:ID3、C4.5、CART 三种决策树算法在划分属性选择上有何不同?
    答案:ID3 算法使用信息增益选择划分属性,信息增益越大,纯度提升越大,但偏好可取值多的属性;C4.5 算法采用信息增益率(信息增益 ÷ 自身熵)来选择,以改进 ID3 的不足;CART 算法则通过基尼指数衡量数据集纯度,基尼指数越小,数据集纯度越高,以此选择划分属性。
  2. 问题:决策树为何需要剪枝?预剪枝和后剪枝有何区别?
    答案:决策树过拟合风险很大,理论上可完全分开数据,剪枝是为了避免过拟合。预剪枝是边建立决策树边进行剪枝,更实用,可通过限制深度等方式实现;后剪枝是建立完决策树后进行剪枝,以最终损失(自身的 GINI 系数值 +α× 叶子节点数量)为衡量标准,α 大小影响过拟合和结果好坏。
  3. 问题:在决策树中,如何处理连续值属性?
    答案:处理连续值属性采用贪婪算法,首先对连续值进行排序,然后确定可能的分界点进行二分,这一过程实质是 “离散化”。例如对于 Taxable Income 的连续值,排序后可找到多个分界点,将其分割为不同的区间。

网站公告

今日签到

点亮在社区的每一天
去签到