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

决策树学习笔记

一、基础概念解析

(一)核心定义

决策树是一种基于树形结构的机器学习模型,其工作逻辑是从根节点开始,通过对数据特征的逐步判断,沿着分支路径流动,最终抵达叶子节点并输出决策结果。它的显著优势是既能处理分类任务(如判断邮件是否为垃圾邮件),也能完成回归任务(如预测房屋价格),所有输入数据都会被精准分配到某个叶子节点。

(二)结构组成

  1. 根节点:决策树的起点,包含全部训练数据样本,是首次进行特征判断的节点。例如在 “是否适合打球” 的决策树中,根节点会从 “天气”“温度” 等特征中选择第一个判断条件。
  2. 非叶子节点与分支:非叶子节点是中间决策点,每个节点对应一个特征,特征的不同取值会形成不同分支。比如 “天气” 节点下,会有 “晴天”“阴天”“雨天” 三个分支,数据根据自身特征值进入对应分支。
  3. 叶子节点:树形结构的末端节点,不再进行特征判断,直接输出决策结果。在分类任务中是具体类别(如 “适合打球”“不适合打球”),在回归任务中是连续数值(如 “房价 80 万元”)。

二、训练与测试流程

(一)训练阶段

核心目标是从训练数据中构建出一棵最优决策树,关键步骤包括:

  • 从根节点开始,选择最佳特征进行数据划分;
  • 对每个子节点重复特征选择和划分过程,形成分支结构;
  • 直到满足停止条件(如子节点数据类别单一、无更多特征可用等)。 难点:如何选择特征和确定切分方式,这直接影响决策树的性能。

(二)测试阶段

流程相对简单:

  • 将测试数据输入已训练好的决策树;
  • 数据从根节点出发,按特征取值沿分支流动,最终到达叶子节点;
  • 叶子节点的结果即为预测输出,再通过准确率、误差等指标评估模型效果。

三、特征切分的核心原理

(一)核心问题

构建决策树时需解决两个关键问题:

  1. 每个节点应选择哪个特征进行划分?
  2. 该特征的取值如何切分才能使分类效果最优? 目标是让每次划分后的数据 “纯度更高”(同类数据更集中)。

(二)熵:衡量不确定性的指标

  1. 定义:熵是描述随机变量不确定性的数学度量,在决策树中用于衡量数据集中类别的混乱程度。
  2. 公式:\(H(X) = -\sum_{i=1}^{n} p_i \times \log p_i\),其中\(p_i\)是第i类数据在样本中的占比,n是类别总数。
  3. 特性
    • 当所有数据属于同一类别(\(p_i=1\)或\(p_i=0\))时,熵\(H(X)=0\),不确定性为 0;
    • 当数据中两类占比相等(\(p_i=0.5\))时,熵\(H(X)=1\),不确定性最大;
    • 不确定性越高,熵值越大。分类任务中希望划分后子节点的熵值更小。

(三)信息增益:特征选择的依据

  1. 定义:表示某特征划分数据后,数据集不确定性减少的程度,即 “原始熵 - 划分后熵”。
  2. 计算逻辑
    • 先计算原始数据集的熵(初始不确定性);
    • 按某特征的不同取值将数据划分为若干子集,计算每个子集的熵;
    • 用各子集的样本占比加权计算 “划分后总熵”;
    • 信息增益 = 原始熵 - 划分后总熵。
  3. 作用:信息增益越大,说明该特征对降低不确定性的作用越显著,因此在节点划分时优先选择信息增益最大的特征。

四、决策树构造实例(14 天打球数据)

(一)数据背景

  • 样本:14 天的打球记录(9 天打球,5 天不打球);
  • 特征:天气(outlook)、温度(temperature)、湿度(humidity)、风力(windy);
  • 目标:构建决策树判断 “是否适合打球”。

(二)初始熵计算

原始数据集熵:\(H = -(\frac{9}{14} \times \log\frac{9}{14} + \frac{5}{14} \times \log\frac{5}{14}) \approx 0.940\)。

(三)特征 “outlook” 的分析过程

  1. 子集熵计算
    • 天气 = 晴天(5 天):3 天打球、2 天不打球,熵\(H_1 \approx 0.971\);
    • 天气 = 阴天(4 天):4 天打球、0 天不打球,熵\(H_2 = 0\);
    • 天气 = 雨天(5 天):2 天打球、3 天不打球,熵\(H_3 \approx 0.971\)。
  2. 划分后总熵:\(H_{\text{outlook}} = \frac{5}{14} \times 0.971 + \frac{4}{14} \times 0 + \frac{5}{14} \times 0.971 \approx 0.693\)。
  3. 信息增益:\(IG = 0.940 - 0.693 = 0.247\)。

(四)构造流程

  1. 计算所有特征(天气、温度、湿度、风力)的信息增益;
  2. 选择信息增益最大的特征(如本例中的 “outlook”)作为根节点;
  3. 对根节点的每个子节点,重复上述特征选择过程(计算剩余特征的信息增益),构建下一级节点;
  4. 递归划分直到子节点数据类别单一(熵为 0),形成完整决策树。
http://www.dtcms.com/a/337564.html

相关文章:

  • Linux内存管理系统性总结
  • RabbitMQ:数据隔离
  • 代码随想录刷题Day36
  • 大数据时代时序数据库选型指南:深度解析与 Apache IoTDB 实践
  • 3D检测笔记:基础坐标系与标注框介绍
  • 【Langchain系列五】DbGPT——Langchain+PG构建结构化数据库智能问答系统
  • Pageable 菜教程
  • AI应用商业化加速落地 2025智能体爆发与端侧创新成增长引擎
  • BeeWorks 私有化会议系统:筑牢企业会议安全防线,赋能高效协同
  • 敏感数据加密平台设计实战:如何为你的系统打造安全“保险柜”
  • 高防IP如何实现秒级切换?
  • 技术赋能安全:智慧工地构建城市建设新防线
  • AR技术为消防救援装上“智能透视眼”
  • K8s的命名空间需要创建吗
  • 容器化 Android 开发效率:cpolar 内网穿透服务优化远程协作流程
  • Redis主从架构、哨兵模式及集群比较
  • 利用深度强化学习进行芯片布局
  • 【1:1复刻R版】python版火山图函数一键出图
  • iOS 正式包签名指南
  • 【LeetCode】15. 三数之和
  • 从财务整合到患者管理:德国医疗集团 Asklepios完成 SAP S/4HANA 全链条升级路径
  • 贪心算法(Greedy Algorithm)详解
  • 【机器学习】Macro-F1(宏平均 F1)是什么?
  • SWMM排水管网水力、水质建模及在海绵与水环境中的应用技术-模拟降雨和污染物质经过地面、排水管网、蓄水和处理
  • Jenkins启动端口修改失败查找日志
  • 音频算法工程师技能1
  • Vue2篇——第五章 Vue.js 自定义指令与插槽核心
  • 【序列晋升】:9 Service Mesh微服务通信的基础设施革命
  • 电子元器件-电容终篇:基本原理、参数解读、电路作用、分类及区别、应用场景、选型、降频及实战案例
  • Linux 系统~存储高级技术