机器学习_西瓜书_C4决策树

目录

4.1 算法原理

决策树结构

结点非可分: 递归

结点可分:MAX结点纯度purity(单结点同类别)

4.2 划分方法

ID3决策树 Iterative Dichotomiser 迭代二分器 (离散值)

C4.5决策树 (连续值)

CART决策树 Classification And Regression Tree

4.3 剪枝pruning, 连续值, 缺失值

预剪枝prepruning

后剪枝postpruning

连续值处理

缺失值处理

4.4 多变量决策树

Task2 学习心得


4.1 算法原理

决策树结构

  • 根结点: 样本全集D
  • 内部结点: 属性测试
  • 叶结点: 结果

递归(Recursion): 在函数的定义中使用函数自身的方法. 自己调用自己, 有去有回.

https://zh.wikipedia.org/zh/%E9%80%92%E5%BD%92

先验分布: 抽样前认知;

后验分布: 抽样后认知, 联合条件概率=总体+样本+先验.

贝叶斯统计——先验分布与后验分布_东皇太乙的博客-CSDN博客_已知先验分布求后验分布

结点非可分: 递归

  • 不用分:  结点内样本全为同一类别
  • 无法分: (后验分布) 属性A=∅ or 所有属性的样本全部相同
  • 不能分: (先验分布) 结点内样本为空

结点可分:MAX结点纯度purity(单结点同类别)

  • ID3决策树
  • C4.5决策树
  • CART决策树

4.2 划分方法

ID3决策树 Iterative Dichotomiser 迭代二分器 (离散值)

衡量纯度指标

MIN 信息熵 info entropy ∈ [ 0 , log_2|y| ] 表示结果的不确定性,越小越好

MAX 信息增益 info gain 表示结果的收益性,越大越好

步骤

  1. 第一层: 好瓜/坏瓜
    1. all 单属性`gain = `熵 - 累计(单属性`熵)
    2. pick MAX(单属性`gain) 作为第二层 e.g.A4
  2. 第二层: A4
    1. all except A4 单属性`gain = A4`熵 - 累计(单属性`熵).
    2. pick MAX(单属性`gain) 作为第三层.
  3. repeat

评价

  • 序号也可作为属性, 虽然info gain明显大于其他属性(∵单结点单样本,纯度max),  但是不具备泛化能力.
  • info gain偏好可取纸数目多的属性, 直接使用不利

C4.5决策树 (连续值)

衡量纯度指标

增益率 gain ratio: 取代方法一info gain存在偏好的缺点

固有值 IV intrinsic value 

评价

偏好可取值数目少的属性

非直接取MAX(gain ratio), 先find all 属性(ratio > AVG), 再 pick max

CART决策树 Classification And Regression Tree

衡量纯度指标

MIN 基尼值: 随机抽2样,类别不一致的概率,越小越好

描述数据集D

MIN 基尼指数 Gini index

描述属性a

4.3 剪枝pruning, 连续值, 缺失值

防止分支过多,过度拟合

预剪枝prepruning

划分前: 不能提升泛化性, 停止划分, 标记为叶结点end

判定能否提升泛化性: 使用C1性能评估方法, e.g.留出法

步骤

  1. 确认使用留出法, 随机选出验证集
  2. 选择属性, 基于max info gain, e.g."脐部" 
  3. 标记训练集分类: 好瓜in凹陷TTTF→T, 稍凹TTFF→T*, 平坦FF→F (*标记某结点的类别时, 用样例中最多的那个类别, 一样多就任选)
  4. 匹配验证集分类: 凹凹稍稍平平凹, 按训练集标记为TTTTFFT, 实际TTTFFFF, 一致率5/7
  5. 判断是否执行划分: 算验证集精度(分类正确率), 划分后>前, 执行
    1. 第一层(划分前) 好瓜T/坏瓜F: 验证集精度 = 3/7 = 42.9%
    2. 第二层(划分后) 属性1脐部: 验证集精度 = 5/7 = 71.4% > 划分前42.9%
    3. 执行用"脐部"划分
    4. repeat
      1. 选择属性1-1, 基于max info gain, "脐部-凹陷"-色泽
      2. 标记训练集分类: 脐部-凹陷in绿T→T, 黑TT→T, 白F→F,
      3. 匹配验证集分类: 绿白绿, 按训练集标记为TFT, 实际TTF, 一致率2/3
      4. 判断是否执行划分: 
        1. 第二层(划分前) 属性1脐部: 验证集精度 = 71.4%
        2. 第三层(划分后) "脐部-凹陷"-色泽: 验证集精度 = 57.1% < 划分前71.4%
        3. 不执行"脐部-凹陷"划分
        4. repeat
          1. 选择属性1-2, 基于max info gain, "脐部-稍凹"-根蒂
          2. ...划分后71.4% = 划分前, 不执行
          3. repeat
            1. 选择属性1-3, "脐部-平坦", 训练集样例分类一致, 不执行划分

评价

优: -过拟合风险; 减少训练/测试时间成本

缺: 剪掉的枝虽然当前不能提升泛化性,但其子分支未来可能提升; +欠拟合风险

后剪枝postpruning

划分后: 自底向上检查整棵树的结点, 若有结点分支替换为叶结点能提升泛化性, 执行替换

步骤

  1. 求整个决策树的验证集精度
  2. 分支替换为叶结点, 标记叶结点, 求新验证集精度, >原:剪枝, <=原:不剪

评价

优: 比预剪枝保留更多分支; 欠拟合风险小; 泛化性能优于预剪枝

缺: 时间成本高

连续值处理

二分法bi-partition: 将连续属性离散化, applied in C4.5决策树算法

注意: 当前结点按连续属性划分, 子结点还可以继续按连续属性划分

步骤

  1. 将连续属性值从小到大排序
  2. 求info gain 和 划分点t, 按t划分集合D为Dt-和Dt+
  3. pick MAX(all info-gain)
  4. 递归划分

缺失值处理

问题1: 缺失属性值, 如何选择划分属性?

解决1: 根据D~判断属性优劣, D~: D在属性a上无缺失值的样本子集

问题2: 给定划分属性, 缺失样本值, 如何划分样本?

解决2 : 若属性a下样本值x已知, 将样本值x划入对应子结点, 样本权值w保持; 若未知, 将样本值x划入所有子结点, 权值调整为 r~*w. applied in C4.5决策树算法.

4.4 多变量决策树

单变量决策树uni-variate decision tree: 轴平行axis-parallel

多变量决策树multi-variate decision tree: 非叶结点不是仅针对某个属性,而是针对属性的线性组合


Task3 学习心得

  • 理论: C4决策树相对简单, 学起来比C3轻松
  • 代码: 在看吴恩达的ML和之前上课的课件
  • datawhale的视频看完我还要来更新下笔记
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《机器学习西瓜书机器学习领域的一本经典教材,其中的决策树算法是机器学习中的一种重要分类算法。决策树算法可以用于决策问题,将问题分解成多个子问题,通过构造决策树来递归地进行分类。 决策树算法的构建过程可以分为两个步骤,即特征选择和决策树生成。在特征选择过程中,需要根据某个评估指标对不同特征进行排序,选择最优的特征作为节点进行分割。常用的评估指标包括信息增益、信息增益比和基尼系数等。在决策树生成过程中,需要递归地生成决策树的各个节点,通过特征选择将训练样本不断划分成子集,并为每个子集生成一个新的节点,直到满足停止条件。 决策树算法具有易理解、易实现的特点,同时对部分异常数据具有一定的鲁棒性。但是,在处理高维数据或特征较多的数据集时,决策树算法可能会存在过拟合等问题。为了解决这些问题,可以使用剪枝算法、随机森林等方法进行优化和改进。 在实际应用中,决策树算法被广泛应用于数据挖掘、信用评估、医学诊断、文本分类等领域。在学习和应用决策树算法时,需要注意特征选择和决策树生成的各种细节和算法选择,以及如何利用决策树算法解决实际问题。 ### 回答2: 《机器学习》这本西瓜书机器学习领域的经典教材之一,其中涉及了决策树算法。决策树是一种基于树形结构的分类方法,可以用于处理离散型和连续型数据集。使用决策树算法建立模型的过程,可以理解为递归地将数据切割成小的子集,使得每个子集的纯度尽可能地提高,最终生成一棵有序的树型结构。 决策树算法的训练过程,通常分为三个步骤:选择最优特征、建立决策树以及剪枝。其中选择最优特征的目的是在当前样本集合中,找到对样本分类最有帮助的特征,通过衡量每个特征的信息增益或信息增益比,选出最优特征作为节点。根据节点特征将数据集分成若干互斥的子集,然后递归地对子集进行划分,生成决策树。最后,通过剪枝减少决策树的复杂度和泛化误差,得到最终的模型。 决策树算法在实际应用中具有很高的灵活性和可解释性,相对简单的分类问题中具有很好的性能。但是,当数据集过大或过于复杂时,决策树算法的计算复杂度会显著增加,生成的决策树容易过拟合,泛化能力较差。因此,在进行模型训练时需要进行特征选择、代码优化以及剪枝等操作。 ### 回答3: 决策树机器学习中一种常用的算法,它采用树状结构来进行分类和预测。在《机器学习西瓜书中,决策树被归为监督学习中的分类算法。 决策树算法的主要思想是将数据按照特征属性分为不同的类别。决策树有三个关键的概念:节点、分支、叶子节点。节点包括根节点、内部节点和叶子节点。根节点代表数据集,内部节点表示特征属性,叶子节点代表不同的数据类别。 在决策树算法中,有两种常用的构建方式:ID3算法和C4.5算法。这里我们简要介绍一下C4.5算法。C4.5算法是决策树算法中的一种改进算法,它不仅考虑了信息熵,还考虑了各个特征属性之间的相关性,从而提高了决策树算法的准确率。 C4.5算法主要分为三个步骤:特征选择、决策树的生成和决策树的剪枝。在特征选择阶段,C4.5算法采用信息增益比来选择最优划分属性。在决策树的生成阶段,C4.5算法采用递归方法,依次生成决策树的各个节点。在决策树的剪枝阶段,C4.5算法通过比较剪枝前后的错误率来确定是否进行剪枝。 总的来说,决策树算法是一种简单且常用的分类算法,它不仅易于理解和解释,还具有较高的分类准确率。当然,在实际应用中,我们需要根据实际情况选择合适的决策树算法,并对模型进行调参和优化,提高算法的性能和实用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值