当前位置: 首页 > news >正文

8.18决策树

1. 决策树概述

  • 定义:决策树是一种树模型,用于分类和回归任务。它从根节点开始,通过一系列的特征选择和分支,最终到达叶子节点,给出决策结果。

  • 组成

    • 根节点:第一个选择点。

    • 非叶子节点与分支:中间过程,表示特征选择和分支。

    • 叶子节点:最终的决策结果。

2. 决策树的训练与测试

  • 训练阶段:从给定的训练集构造决策树,包括选择特征和特征切分。

  • 测试阶段:根据构造的树模型进行分类或回归任务,只需从上到下遍历树。

3. 如何切分特征(选择节点)

  • 目标:选择能够最好地切分数据的特征作为根节点,以提高分类效果。

  • 衡量标准:通过某种标准计算不同特征进行分支选择后的分类情况,选择最佳特征。

4. 衡量标准:熵

  • :表示随机变量不确定性的度量,公式为H(X)=- ∑ pi * logpi, i=1,2, ... , n

  • 应用:在分类任务中,希望分支后的数据类别熵值尽可能小,表示分类后的专一性。

5. 信息增益

  • 定义:表示特征X使得类Y的不确定性减少的程度。

  • 计算:通过比较原始数据集的熵与根据特征分割后的数据集熵的期望值之差来计算。

6.案例:

  1. 数据集与标签说明

    • 数据集包含14天的打球情况,标签为“是否出去玩”(Play),特征包括天气(Outlook)、温度(Temperature)、湿度(Humidity)、是否多云(Windy)。
    • 目标是通过决策树算法,根据特征预测标签。
  2. 根节点选择方法

    • 需通过信息增益(Information Gain)确定根节点(大当家),信息增益越大,特征对标签的分类效果越好。
    • 计算步骤:
      1. 计算初始标签的熵(Entropy):基于“Play”列的分布(如5个“No”、9个“Yes”)。
      2. 对每个特征(如Outlook)分组后,计算子集的熵,并加权求和得到条件熵。
      3. 信息增益 = 初始熵 - 条件熵,选择增益最大的特征作为根节点。
  3. 具体计算示例(Outlook特征)

    • 初始熵:H(Play) = - (5/14)*log(5/14) - (9/14)*log(9/14)
    • Outlook分三类:
      • Sunny(5天):熵A = - (3/5)*log(3/5) - (2/5)*log(2/5)
      • Overcast(4天):全“Yes”,熵B = 0
      • Rainy(5天):熵C = A(同Sunny分布)。
    • 条件熵:H(Play|Outlook) = (5/14)*A + (4/14)*B + (5/14)*C
    • 信息增益:H(Play) - H(Play|Outlook)
  4. 决策树构建逻辑

    • 根节点确定后,递归选择后续节点(二当家、三当家),每次选择剩余特征中信息增益最大的特征。
    • 需注意:后续节点的信息增益需基于已选特征的条件熵计算,而非直接与初始熵比较。
  5. 讨论与澄清

    • 部分同学混淆了标签列与特征列的作用,需明确熵的计算仅基于标签列(Play)。
    • 强调加权求和的重要性(如Outlook的子集熵需按天数比例加权)。
    • 信息增益的目标是快速降低不确定性,优先选择分类效果强的特征
    • 大当家选择方法

      • 根据四个节点划分数据,分别计算天气(sunny/overcast/rainy)条件下的信息增益值。
      • 通过加权求和计算商值(熵)。
      • 信息增益最大的属性(天气)被选为“大当家”。
    • 二当家选择方法

      • 在已选大当家(天气)的子节点中,穷举剩余属性(如温度)进行划分。
      • 计算子节点的商值(如温度分 hot/medium/cool),若子节点纯度为 1(全 yes/no)则停止划分。
      • 加权计算整体商值(需乘两次权重:子节点内比例和父节点全局比例)。
      • 信息增益公式:X - Y(X为大当家商值,Y为二当家候选商值),最大值者当选。
    • 课堂练习

      • 题目:基于“是否浮出水面生存”和“是否有脚蹼”两个特征构建决策树。
      • 计算步骤:
        • 原始商值:0.971(以 2 为底对数)。
        • “有脚蹼”作为根节点时商值:0.8,信息增益 0.171。
        • “不浮出水面”作为根节点时商值:0.551,信息增益 0.42(更大,当选大当家)。
    • 注意事项

      • 加权次数随层级增加(三当家需乘三次权重)。
      • 对数底数通常为 2(因频繁出现二分之一概率)。  

    7.总结:

    今天详细介绍了决策树的基本概念、组成部分、训练与测试过程、特征选择的方法以及如何使用熵和信息增益来衡量特征的重要性。通过实例演示了如何构造决策树,并提供了课堂练习以加深的理解。

    http://www.lryc.cn/news/624603.html

    相关文章:

  6. B站 韩顺平 笔记 (Day 22)
  7. 芋道审批流配置流程表单超详细介绍
  8. 《清华级防护,了解一下?》
  9. 龙石数据中台 V3.7.1 升级 | 一站式完成数据可视化
  10. 【案例分享】AI使用分享|如何运用 GPT完成小任务并提升效率 —— Prompt 与案例整理
  11. CentOS 7.9 部署 filebrowser 文件管理系统
  12. ES入门教程
  13. Mysql实战案例 | 利用Mycat实现MYSQL的读写分离
  14. Linux 服务:RAID 级别解析与 mdadm 工具实操指南
  15. 【OLAP】trino安装和基本使用
  16. 功能测试相关问题
  17. Linux 编译器 gcc 与 g++
  18. 代码随想录算法训练营四十五天|图论part03
  19. llamafactory使用qlora训练
  20. 无人设备遥控器之操控信号精度篇
  21. unity实现背包拖拽排序
  22. 【机器人-基础知识】ROS2常用命令
  23. 第一阶段C#基础-15:面向对象梳理
  24. 论往返之迴响:时间之织锦与信息之曼舞
  25. 第三十二天(并发)
  26. 如何在VS Code中使用Copilot与MCP服务器增强开发体验
  27. 【C++】 using声明 与 using指示
  28. 云原生Ansible渗透场景(⾃动化的运维⼯具)
  29. Netty架构与组成
  30. 45 C++ STL模板库14-容器6-容器适配器-优先队列(priority_queue)
  31. 贪心算法(Greedy Algorithm)详解
  32. 【C语言】gets和getchar的区别
  33. 深度优先遍历dfs(模板)
  34. 具身智能2硬件架构(人形机器人)摘自Openloong社区
  35. 数据结构:查找表