「机器学习笔记7」决策树学习:从理论到实践的全面解析(上) - 详解

news/2025/11/7 14:03:08/文章来源:https://www.cnblogs.com/yxysuanfa/p/19199503

机器学习中的决策树算法是一种直观且强大的工具,它模拟人类决策过程,通过树状结构对数据进行分类或回归预测。本文将深入探讨决策树的基础概念、经典算法、过拟合问题及解决方案,以及实际应用中的扩展处理。

一、决策树学习基础

适用场景

决策树特别适合以下类型的问题:

  1. 带有非数值特征的分类问题

  2. 离散特征

  3. 没有明确相似度概念的数据

  4. 特征无序的数据集

样本表示

决策树处理的是属性列表而非数值向量。例如:

  • 例如享受运动的例子:{天气=晴, 温度=暖, 湿度=一般, 风=强, 水温=暖, 预测天气=不变}

  • 例如水果的例子:{颜色=红, 大小=小, 形状=球形, 味道=甜}

训练数据通常以多条属性记录的形式存在,例如:

  • <香蕉>: 黄色、细长、中、甜

  • <西瓜>: 绿色、球形、大、甜

训练样本

Sky
(天气)
Temp
(温度)
Humid
(湿度)
Wind
(风)
Water
(水)
Forecast
(预测天气)
Enjoy
(享受与否)
SunnyWarmNormalStrongWarmSameYes
SunnyWarmHignStrongWarmSameYes
RainyColdHignStrongWarmChangeNo
SunnyWarmHignStrongColdChangeYes

决策树概念

决策树是一种树形结构,其中:

image.png

  • 非叶节点代表特征/属性

  • 分支代表该叶子节点特征/属性的取值

  • 叶节点代表决策/标签/类别/概念

关系

  • 从根节点到叶节点,是且的关系。如天气下雨,并且风力很强,就No
  • 同一个节点下面不同分支,是或的关系。 比如天气时晴天、或者阴天、或者雨天

决策树发展历程

决策树算法自1966年由Hunt首次提出后,经历了多次主要发展:


二、经典决策树算法:ID3

ID3算法采用自顶向下的贪心搜索策略,通过递归方式构建决策树。其核心循环包括:

  1. 选择下一步最佳决策属性

  2. 将该属性作为当前节点的决策属性

  3. 为属性的每个值创建对应的新子节点

  4. 根据属性值将训练样本分配到各个节点

  5. 要是训练样本被完美分类则停止,否则继续分裂

最佳属性?就是Q1, 哪个属性

image.png

属性选择与节点混杂度

ID3算法的关键在于如何选择最佳分裂属性。算法倾向于选择简洁的、节点数较少的树,即在每个节点上选择能使数据尽可能“纯”的属性。

image.png

  • 左边根据颜色判断是watermelon还是lemon
  • watermelon。小的再根据颜色来判断就是右边会先根据大小判断,大的
  • 所以认为左边的更加简洁,更好

如何衡量混杂度?

混杂度(impurity)衡量指标包括:

  • 熵(Entropy)​​:Entropy(N)=−∑jP(wj)log⁡2P(wj)Entropy(N)=-\sum_j P(w_j)\log_2 P(w_j)Entropy(N)=jP(wj)log2P(wj)
    • 定义: 0log0 = 0
    • 熵度量了信息的不确定性
    • 正态分布具有最大熵值。

按上面例子,计算熵值:

Entropy(S)=−2964∗log22964−3564∗log23564=0.993 Entropy(S) = -\frac{29}{64}*log_2\frac{29}{64}-\frac{35}{64}*log_2\frac{35}{64} = 0.993Entropy(S)=6429log264296435log26435=0.993

image.png

  • Gini混杂度​:i(N)=∑i≠jP(wi)P(wj)=1−∑jP2(wj)i(N)=\sum_{i\neq j}P(w_i)P(w_j)=1-\sum_j P^2(w_j)i(N)=i=jP(wi)P(wj)=1jP2(wj)

image.png

  • 错分类混杂度​:i(N)=1−max⁡jP(wj)i(N)=1-\max_j P(w_j)i(N)=1maxjP(wj)

image.png

度量混杂度的变化ΔI(I)-信息增益(Information Gain)

信息增益是选择分裂属性的核心指标,表示因属性排序整理带来的熵的期望减少量。通过计算每个属性的信息增益,可以选择最能减少不确定性的属性。

Gain(S,A)≡Entropy(S)−∑v∈Values(A)∣Sv∣∣S∣Entropy(Sv) \text{Gain}(S,A)\equiv \text{Entropy}(S)-\sum_{v\in \text{Values}(A)}\frac{|S_v|}{|S|}\text{Entropy}(S_v)Gain(S,A)Entropy(S)vValues(A)SSvEntropy(Sv)

image.png

计算信息增益:

Q2, 何时返回(停止分裂节点)?

终止条件

ID3算法在以下两种情况停止分裂:

  1. 第一种情况, 当前子集中所有数据有完全相同的输出类别

  2. 第二种情况,当前子集中所有内容有完全相同的输入特征值

是否存在第三种情况,如果所有属性分裂的信息增益为0,那么终止?

以下面示例来说明:

aby
000
011
101
110

image.png

因此,只会有两种情形会停止分裂:相同的输出类别或相同的输入特征

ID3算法的特性分析

假设空间特性:

  • 完备性: 目标函数必定存在于假设空间中
  • 单一假设输出:通常问题规模不超过20个属性
  • 无回溯贪心搜索:可能陷入局部最优解
  • 全信息利用:对噪声数据具有一定的鲁棒性

归纳偏置

  • 假设空间:不对假设空间施加限制
  • 搜索偏置:偏好信息增益大的属性靠近根节点
  • 奥卡姆剃刀原则:偏向于最简单的合理解释
  • 达成方法:通过信息增益最大化来达成简洁性偏好

CART (分类和回归树)

一个通用的框架:

许多决策树算法都在这个框架下,包括ID3、C4.5等等。


下篇预告

在下一章中,我们将深入探讨决策树学习中的过拟合难题、剪枝技术、连续属性处理方法以及决策树在实际应用中的扩展和优化策略。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/958794.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微算法科技(NASDAQ MLGO)基于PoS的跨链桥接协议(PoS-BCP):重塑区块链互操作生态

区块链技术的快速发展催生了多元的链上生态,从公链到联盟链,从通用型区块链到垂直领域专用链,不同网络在架构设计、共识机制与功能定位上呈现显著差异。这种多样性虽推动了行业创新,却也导致“数据孤岛”现象——资…

axios 请求错误重复请求

一、实现: import axios from "axios"; import type { InternalAxiosRequestConfig, AxiosResponse, AxiosInstance } from "axios";// 创建Axios实例 const axiosInstance: AxiosInstance = axi…

2025年磷酸氢二钠供货厂家权威推荐榜单:磷酸二氢钠/草酸/磷酸氢二钾源头厂家精选

在化工、食品、医药及水处理等行业持续发展的推动下,磷酸氢二钠作为重要的基础化工原料,其市场供应稳定性与产品质量已成为下游用户关注的核心。行业数据显示,2024年中国磷酸盐市场规模已突破200亿元,其中食品级磷…

GNU Radio (二) 2FSK 信号 发送

GNU Radio (二) 2FSK 信号 发送 一、官方 demo Simulation example: FSK - GNU Radio二、FSK

升鲜宝生鲜配送供应链管理系统--- 《多语言商品查询优化方案(Redis + 翻译表 + 模糊匹配)》

升鲜宝生鲜配送供应链管理系统--- 《多语言商品查询优化方案(Redis + 翻译表 + 模糊匹配)》 一、方案概述 本方案旨在实现商品模块的多语言查询与显示一体化。通过结合 Redis 缓存与数据库翻译表(sys_dynamic_trans…

2025年无风感空调品牌权威推荐榜单:省电空调/小户型空调/防直吹空调源头厂家精选

在追求舒适生活的今天,一股没有直吹感的柔和气流,正是现代空调技术送给家庭的最佳礼物。 无风感空调作为空调领域的技术创新成果,其气流控制技术与舒适度表现直接关系到用户的体验满意度。随着消费者对室内环境舒适…

基于稀疏表示分类器的高光谱图像分类MATLAB实现

基于稀疏表示分类器(Sparse Representation Classifier, SRC)的高光谱图像分类MATLAB实现一、架构 1. 算法流程二、核心代码 1. 数据加载与预处理 %% 数据加载(ENVI格式) hdr = read_envihdr(Indian_pines.hdr); %…

【能源行业案例】借助TeeChart图表库,将地质数据转化为清晰的见解

自2007年以来,GeoLogismiki一直使用TeeChart Pro VCL/FMX图表库将复杂的数据转化为清晰、交互式的图形。将地质数据转化为清晰的见解 GeoLogismiki是一家总部位于希腊的公司,致力于为地质学家、工程师和环境专业人士…

地图上色

地图上色数据源地级市 地区生产总值(GDP)苏州市 26727.00南京市 18500.81无锡市 16263.29南通市 12421.90常州市 10813.60徐州市 10000.00扬州市 7809.64盐城市 7779.20泰州市 7020.95镇江市 5540.01淮安市 5413.02宿…

TCP快速打开TFO

以上仅供参考,如有疑问,留言联系

2025年双出风中央空调品牌权威推荐榜单:中央空调选购/省电中央空调/6赫兹中央空调源头厂家精选

在现代家居与商业空间中,一股柔和而均匀的气流往往是衡量空调系统品质的隐形标尺。 随着人们对室内环境舒适度要求的不断提高,双出风中央空调以其优越的气流分布能力和温度控制精度,正成为高端住宅和商业空间的首选…

模拟赛SXJ202511061800比赛记录题解

题目请看 最近被一些模拟赛蹂躏了,这场是来思路来的最快的一场比赛T1So easy,but...很简单,判差值和数量即可,我却漏了细节,82point,磕细节磕了1h,才想出正解,64行贴一下代码 /* User:Kevinrzy103874 Uid:72 Ag…

2025年山东开锁培训学校权威推荐榜单:汽车开锁培训/开锁技术培训/培训汽车开锁源头机构精选

一把钥匙开一把锁,但一名专业的锁匠却能开启千百种锁具,这背后是系统化培训与专业技能的结晶。 随着社会对专业开锁服务需求的日益增长,锁具修理工已成为现代城市服务中不可或缺的技术工种。据统计,中国锁具行业年…

2025年绝缘油滤油机直销厂家权威推荐榜单:润滑油滤油机/真空抽气机组/透平油滤油机设备源头厂家精选

在电力、冶金、石化等工业领域,一滴纯净的绝缘油是设备安全运行的命脉,而滤油机正是这命脉的守护者。 绝缘油滤油机作为工业油品净化的关键设备,其技术水平与过滤精度直接关系到大型机械设备的运行安全与使用寿命。…

国产化文档开发组件Spire.Office 10.10 全新发布!多项文档处理能力重磅升级

近日,国产化文档开发组件Spire.Office 同步更新 .NET和 Java 版本至10.10.0 !本次更新带来了多项全新功能与性能优化,为开发者提供更强大、更高效的文档、表格、PDF、演示文稿处理能力。近日,知名国产化文档开发组…

K8S(一)—— 云原生与Kubernetes(K8S)从入门到实践:基础概念与处理全解析

K8S(一)—— 云原生与Kubernetes(K8S)从入门到实践:基础概念与处理全解析pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fa…

fastutil 实战指南:用原始类型集合把性能“薅满”

当你在 Java 里用 `Map<Integer, Double>`、`Set<Long>`、`List<Integer>` 处理大数据,会被装箱/拆箱与对象头开销“慢到怀疑人生”。fastutil 针对每种原始类型提供成套集合与工具(int/long/doub…

如何在关闭浏览器标签前,可靠地发送 HTTP 请求? - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Python 必背内置函数

一、输出与输入类 print() : 打印输出给定内容。示例:print("Hello, Python!") #输出 Hello, Python!input() :接收用户输入并返回字符串。示例:age = input("请输入年龄:") 输入 18 后, ag…

实用指南:【Java并发】深入理解synchronized

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …