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

机器学习中的熵

摘要:本文探讨了熵在机器学习中的应用,重点介绍了其在决策树算法中的作用。熵用于衡量数据集的纯度或随机性,通过香农熵公式计算。决策树利用熵选择最优分割点,以生成同质性更强的子集。文章还提供了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 个类别的分布随机性。

http://www.jsqmd.com/news/349855/

相关文章:

  • 2026年全国外贸出口级纯可可脂巧克力制品哪家做得好?核心能力及场景适配解析 - 深度智识库
  • 2026年AI模型“基因偏见”评估框架:软件测试从业者实战指南
  • 全球厨房秤品牌推荐,大秦制衡电子秤质量怎样? - myqiye
  • 2026年冷热冲击试验箱靠谱的供应商推荐,环保型产品口碑排名 - 工业品网
  • 高性能CNC网关推荐,哪家好用?
  • 2026年广州内外涂塑钢管口碑好的制造商排名,专业之选 - 工业品牌热点
  • 2026年比较好的厂区智能巡检,电力智能巡检公司专业服务推荐榜 - 品牌鉴赏师
  • 2026年AI模型“自我诊断”测试框架:赋能软件测试新范式
  • Vmware 安装 OpenEuler 系统Linux Vscode Remote-SSH
  • 盘点2026年流延机正规供应商靠谱的十大厂家 - 工业设备
  • 为什么你的区块链测试总失败?新工具盘点
  • 2026年流延机选购攻略,流延机价格合理的品牌是哪个 - mypinpai
  • 盘锦车牌靓号代选,盘锦车牌靓号价格-上牌选号 - dasggg
  • 量子机器学习:三行代码入门的2026指南
  • 基于单片机的人体健康监测器设计
  • 2026电子扭转试验机实力厂家推荐,这几家公司质量过硬 - 品牌推荐大师1
  • 昭通车牌靓号代选,昭通车牌靓号价格-上牌选号 - dasggg
  • 智能自助购药系统的研究与应用
  • 硕士文献综述不用愁,paperzz 带你解锁学术写作新姿势
  • docker打包
  • 金融系统OA如何集成百度编辑器的PDF转存功能?
  • 乐山车牌靓号代选,乐山车牌靓号价格-上牌选号 - dasggg
  • 【RAG新范式】超越向量搜索:企业级知识库构建必知的3大RAG高级策略
  • 皮扎特(PIZZATO)安全开关市场解析:代理商生态与选型指南 - 品牌推荐大师1
  • SHAP与LIME深度解析:揭开复杂模型预测的黑箱
  • 计算机毕业设计 | SpringBoot+vue社区智慧养老监护管理平台 养老院管理系统(附源码+论文)
  • 遂宁车牌靓号代选,遂宁车牌靓号价格-上牌选号 - dasggg
  • 锦州车牌靓号代选,锦州车牌靓号价格-上牌选号 - dasggg
  • 贵港车牌靓号代选,贵港车牌靓号价格-上牌选号 - dasggg
  • Flutter 三方库 OpenHarmony 适配指南:关键要点与最佳实践