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

决策树学习报告

一、决策树基础概念

决策树是一种基于树结构的机器学习模型,核心逻辑是从根节点出发,依据特征选择分支,逐步遍历至叶子节点,最终得到决策结果。其适用范围广,既能处理分类任务,也能完成回归任务,所有输入数据最终都会对应唯一的叶子节点,不存在 “无决策结果” 的情况。

二、决策树的组成结构

决策树主要由三部分构成,各部分功能明确,可通过日常场景类比理解:

结构名称通俗解读核心作用
根节点决策的第一个关键问题作为决策起点,筛选最重要的特征
非叶子节点 + 分支决策过程中的中间判断逐步缩小数据范围,靠近最终结果
叶子节点最终的决策答案输出具体的分类或回归结果
例如 “周末出行选择” 决策树中,根节点可设为 “是否有聚会”,分支为 “是 / 否”;非叶子节点可设为 “作业是否紧急”,叶子节点则为 “去酒吧”“在家学习”“看电视” 等具体结果。

三、决策树的训练与测试流程

(一)训练阶段

训练的本质是从给定训练集中构建决策树,关键在于确定 “如何选择特征作为节点”。需从根节点开始,通过特定衡量标准筛选最优特征,再对每个分支重复该过程,逐步生成子节点,直至所有数据类别一致或无特征可选,最终形成完整树结构。

(二)测试阶段

训练完成后,测试流程十分简洁:将测试数据从根节点代入,按照特征取值选择对应分支,依次向下遍历,直至抵达叶子节点,该叶子节点的结果即为测试数据的决策输出。例如用 “是否打球” 的决策树测试时,输入 “晴天、高湿度”,沿分支遍历后即可得到 “是否去打球” 的结果。

四、特征切分的关键指标:熵与信息增益

特征切分需依靠数学指标判断,核心为 “熵” 和 “信息增益”,二者共同决定特征的重要性。

(一)熵:衡量数据不确定性

  • 定义:熵是量化随机变量不确定性的指标,数据类别越混乱、分布越分散,熵值越大;数据类别越单一、分布越集中,熵值越小。
  • 公式:\(H(X) = -\sum_{i=1}^{n} p_i \cdot \log p_i\)(\(p_i\) 为第 i 类数据的概率,n 为类别总数)。
  • 关键结论
    • 当 \(p=0\) 或 \(p=1\)(数据全为同一类)时,\(H(p)=0\),无不确定性;
    • 当 \(p=0.5\)(两类数据各占一半)时,\(H(p)=1\),不确定性最大。
  • 示例:A 集合 [1,1,1,1,1,1,1,1,2,2](类别较集中),熵值较低;B 集合 [1,2,3,4,5,6,7,8,9,1](类别分散),熵值较高。

(二)信息增益:评估特征的分类效果

  • 定义:表示某特征能使类别不确定性减少的程度,减少越多,说明该特征的分类效果越好,优先作为当前节点的切分特征。
  • 计算方法:信息增益 = 原始熵(未切分前的熵值) - 特征分支后的加权熵(按特征取值概率加权计算的熵值)。

五、决策树构造实例

(一)实例背景

  • 数据集:14 天打球记录(9 天 “打球”,5 天 “不打球”);
  • 特征:4 个环境特征(outlook 天气、temperature 温度、humidity 湿度、windy 是否有风);
  • 目标:构建 “判断当天是否打球” 的决策树。

(二)构造步骤(以 outlook 特征为例)

  1. 计算原始熵:14 天中 “打球” 概率为 \(9/14\),“不打球” 概率为 \(5/14\),代入公式得原始熵 \(H=0.940\)。
  2. 计算 outlook 分支熵
    • outlook=sunny(5 天,2 天打球、3 天不打球):熵值 0.971;
    • outlook=overcast(4 天,全为打球):熵值 0;
    • outlook=rainy(5 天,2 天打球、3 天不打球):熵值 0.971。
  3. 计算 outlook 加权熵:按特征取值概率加权,即 \((5/14×0.971)+(4/14×0)+(5/14×0.971)=0.693\)。
  4. 计算信息增益:\(0.940 - 0.693 = 0.247\)。

六、学习收获与待解问题

(一)学习收获

  1. 明确了决策树的核心逻辑,理解 “特征选择” 是构建树的关键,不再依赖主观判断,而是通过熵和信息增益客观筛选。
  2. 实例与练习帮助巩固理论,从 “看不懂公式” 到 “能独立计算并构造简单决策树”,逐步掌握实操方法。
  3. 决策树与生活场景(如选择出行、购物判断)逻辑相似,降低了抽象概念的理解难度。

(二)待解问题

  1. 计算熵时易混淆对数底数(常用 2 或 e),需强化记忆不同底数的适用场景。
  2. 面对大量特征或数据时,手动计算效率极低,需学习 Python 等工具的代码实现(如 sklearn 库)。
  3. 尚未掌握数据缺失、异常值的处理方法,后续需补充相关知识点,应对复杂数据集。

七、总结

决策树是一种直观、易理解的机器学习模型,核心在于 “以熵和信息增益为依据,筛选最优特征构建树结构”。通过本次学习,不仅掌握了基础理论与构造方法,还通过实例与练习实现了理论落地。后续计划尝试用 iris 等公开数据集,结合代码完成决策树构建,进一步提升实操能力,为学习随机森林等复杂树模型奠定基础。

http://www.xdnf.cn/news/1321867.html

相关文章:

  • MCP协议
  • 世界模型之自动驾驶
  • 决策树:机器学习中的直观分类与回归工具
  • 【深度学习基础】PyTorch Tensor生成方式及复制方法详解
  • <数据集>遥感飞机识别数据集<目标检测>
  • 基于深度学习的车牌检测识别系统:YOLOv5实现高精度车牌定位与识别
  • Android Coil3视频封面抽取封面帧存Disk缓存,Kotlin(2)
  • 【LLM1】大型语言模型的基本生成机制
  • 华清远见25072班C语言学习day11
  • 当使用STL容器去存放数据时,是存放对象合适,还是存放对象指针(对象地址)合适?
  • 【C++】 using声明 与 using指示
  • Linux内存管理系统性总结
  • Orange的运维学习日记--45.Ansible进阶之文件部署
  • 获粤港澳大湾区碳足迹认证:遨游智能三防手机赋能绿色通信
  • LeetCode:无重复字符的最长子串
  • 实践笔记-VSCode与IDE同步问题解决指南;程序总是进入中断服务程序。
  • LAMP 架构部署:Linux+Apache+MariaDB+PHP
  • 规避(EDR)安全检测--避免二进制文件落地
  • 云计算- KubeVirt 实操指南:VM 创建 、存储挂载、快照、VMI全流程 | 容器到虚拟机(镜像转换/资源调度)
  • 前端处理导出PDF。Vue导出pdf
  • 王树森深度强化学习DRL(三)围棋AlphaGo+蒙特卡洛
  • STRIDE威胁模型
  • 新手向:Java方向讲解
  • Python实战--基于Django的企业资源管理系统
  • 块体不锈钢上的光栅耦合表面等离子体共振的复现
  • 后端通用基础代码
  • 在嵌入式单片机开发中,通过校验和或者校验码来比对程序版本好有何优劣势
  • 【OLAP】trino安装和基本使用
  • 【完整源码+数据集+部署教程】无人机目标检测系统源码和数据集:改进yolo11-efficientViT
  • Linux网络服务(一)——计算机网络参考模型与子网划分