news 2026/9/3 2:23:11

机器学习中的熵

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
机器学习中的熵

摘要:本文探讨了熵在机器学习中的应用,重点介绍了其在决策树算法中的作用。熵用于衡量数据集的纯度或随机性,通过香农熵公式计算。决策树利用熵选择最优分割点,以生成同质性更强的子集。文章还提供了Python实现示例,使用鸢尾花数据集演示熵的计算过程,得出初始熵值为1.585,反映了三个类别的分布随机性。熵的概念源于热力学,现已成为机器学习中重要的数据分割指标。

目录

机器学习中的熵

熵的计算方法

示例计算

熵在决策树中的应用

Python 实现熵的计算

代码实现

代码说明

运行结果


机器学习中的熵

熵源于热力学,后被应用于信息论、统计学和机器学习等多个领域。在机器学习中,熵用于衡量数据集的纯度或随机性,尤其在决策树算法中,用于确定数据分割方式,以生成同质性更强的子集。本文将介绍机器学习中的熵、其特性及 Python 实现。

熵被定义为系统混乱度或随机性的度量。在决策树中,熵用于衡量节点的纯度:若一个节点中的所有样本都属于同一类别,则该节点为 “纯节点”,熵值为 0;若样本均匀分布在多个类别中,则节点纯度低、熵值高。

熵的计算方法

计算熵需先确定数据集中每个类别的概率。设 p(i) 为样本属于第 i 类的概率,若数据集包含 k 个类别,则系统的总熵(记为 H(S))按香农熵公式计算:

示例计算

假设有一个含 100 个样本的数据集,其中 60 个属于 A 类,40 个属于 B 类。则 A 类概率为 0.6,B 类概率为 0.4,数据集的熵为:

熵在决策树中的应用

决策树算法中,熵的核心作用是选择 “最优分割点”—— 目标是找到能使分割后子集总熵最低的分割方式,从而让子集的同质性最强。

具体流程如下:

1.计算整个数据集的初始熵 H(S);

2.针对每个特征(如 X1、X2)的所有可能分割方式,计算分割后的加权熵:

  • 对特征 X1 分割:
  • 对特征 X2 分割:

其中,p1​,p2​,p3​,p4​ 为各子集的样本占比,H(S1),H(S2),H(S3),H(S4) 为各子集的熵;

3.选择总熵最低的分割方式

生成决策树的子节点;

4.递归重复上述过程,直至所有节点为纯节点或满足停止条件。

Python 实现熵的计算

以下结合 scikit-learn 的 “鸢尾花(iris)数据集”,演示熵的计算过程:

代码实现

from sklearn.datasets import load_iris import numpy as np # 加载鸢尾花数据集 iris = load_iris() # 提取特征数据和标签(标签表示花的类别) X = iris.data y = iris.target # 定义熵计算函数 def entropy(y): n = len(y) # 样本总数 # 统计每个类别的样本数量 _, counts = np.unique(y, return_counts=True) # 计算每个类别的概率(占比) probs = counts / n # 按香农熵公式计算熵 return -np.sum(probs * np.log2(probs)) # 计算鸢尾花数据集标签的熵 target_entropy = entropy(y) # 输出结果(保留3位小数) print(f"标签熵值: {target_entropy:.3f}")

代码说明

  1. 加载数据集:使用load_iris()加载鸢尾花数据集,包含 3 个类别、150 个样本;
  2. 熵计算函数entropy(y)
    • 统计标签中每个类别的样本数量;
    • 计算每个类别的概率(占比);
    • 代入香农熵公式计算总熵;
  3. 输出结果:计算并打印数据集标签的熵值。

运行结果

执行上述代码后,输出如下:

plaintext

标签熵值: 1.585

该结果表明,鸢尾花数据集的初始熵为 1.585,反映了数据集中 3 个类别的分布随机性。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 21:27:56

智能自助购药系统的研究与应用

智能自助购药系统的研究与应用 第一章 系统设计理念与核心目标 智能自助购药系统以“便民惠民、精准安全、高效便捷、合规可控”为核心设计理念,旨在突破传统药店时空限制与人工服务瓶颈,构建覆盖“购药-咨询-结算-取药”全流程的智能化服务体系。系统核…

作者头像 李华
网站建设 2026/9/2 21:27:42

基于PLC的茶叶理条机控制系统设计与调制

基于PLC的茶叶理条机控制系统设计与调制 第一章 系统设计目标与核心需求 基于PLC的茶叶理条机控制系统以“精准控温、调速稳定、工艺可调、操作便捷”为核心设计目标,依托PLC工业级可靠性与逻辑控制优势,突破传统理条机手动调节精度低、工艺一致性差的局…

作者头像 李华
网站建设 2026/9/2 21:27:14

可持续软件开发的测试标准:专业指南

在当今快速迭代的软件开发环境中,可持续性已成为核心议题——它不仅关注软件的环保和资源效率,更强调长期可维护性、可扩展性和社会影响。作为软件测试从业者,您需要掌握相关测试标准,确保软件在整个生命周期中高效、可靠。本文将…

作者头像 李华
网站建设 2026/9/2 21:26:43

ClaudeOpus4.6震撼发布:AI界新王者降临

Claude Opus 4.6 震撼发布:AI 界的新王者来了!今天这篇文章,我们就来深度解析新发布的 Claude Opus 4.6 的核心亮点,看看这个新王者究竟强在哪里,以及我们开发者该如何用好它。相信看完之后,你一定会和我一…

作者头像 李华
网站建设 2026/9/2 21:28:02

‌测试知识变现:打造高转化率在线课程的设计

软件测试知识变现的机遇与挑战‌ 在数字化时代,软件测试从业者(如测试工程师、QA专家和自动化测试员)拥有宝贵的专业知识,却常面临变现难题。2026年,全球在线教育市场预计突破$5000亿(Statista数据&#x…

作者头像 李华
网站建设 2026/9/2 22:39:19

双向奔赴!来自用户企业的他,成了 IoTDB 新的 Committer

用户代表变身核心贡献者! 2026 年 1 月 12 日,经 Apache IoTDB 社区投票,重庆中冶赛迪的时振宇成为 Apache IoTDB Committer。深耕数据库领域多年,兼具 IoTDB 开发者与用户双重视角的他,将如何解读 IoTDB 的技术迭代、…

作者头像 李华