【机器学习】9 ——最大熵模型的直观理解

news2025/1/12 6:08:44

系列文章目录


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 系列文章目录
  • 前奏
    • 例子
      • 硬币
      • 垃圾邮件
      • 代码


前奏

【机器学习】6 ——最大熵模型

例子

硬币

假设我们有一枚硬币,可能是公平的,也可能是不公平的。我们的任务是估计硬币的正反面出现的概率。我们已知硬币有两个面:正面(H)和反面(T),除此之外没有其他信息。因此,我们希望在不引入不必要假设的情况下,找到最合理的概率分布。

当我们没有任何关于硬币的额外信息时,我们唯一知道的是硬币只有两个面(H 和 T)。基于最大熵原则,我们希望选择最“随机”或最“均匀”的概率分布。在这种情况下,最合理的分布是:
P(H) = 0.5
P(T) = 0.5
这是因为熵的最大化意味着我们选择的是最不确定的分布,即每种可能性是等概率的。

对于两个事件 H 和 T:

H( p)=−[p(H)logp(H) + p(T)logp(T)]

代入 P(H) = 0.5 和 P(T) = 0.5:
H( p)=−[0.5log0.5+0.5log0.5] =−[0.5×(−1)+0.5×(−1)]=1
这是在没有任何其他信息时,熵最大的分布,表示正反面各有 50% 的概率。

假设我们现在有额外的信息,例如在 10 次投掷中正面出现了 7 次,反面出现了 3 次。我们不再假设正反面等概率。

我们需要在这个额外信息(正面出现更多次)和熵最大化之间找到平衡。最大熵模型会根据这个信息调整概率分布,但仍然保持最大的熵。

约束条件:正面出现的频率为 7/10,即我们期望: E(H)=0.7
拉格朗日乘数法:我们引入拉格朗日乘数来最大化熵,同时满足上述的约束条件。我们最大化以下目标函数:

L ( p)=−[p(H)logp(H)+p(T)logp(T)]+λ(p(H)−0.7)

通过求导并解方程,可以得到新的概率分布 P(H)=0.7 和 P(T)=0.3,这符合已知数据的约束条件,同时尽量保持熵的最大化。

垃圾邮件

  • 训练数据:
    假设我们有以下几封邮件,并且每封邮件已经标注为垃圾邮件(Spam)或非垃圾邮件(Not Spam):

邮件1 (Spam): “Win a million dollars now”
邮件2 (Not Spam): “Meeting at 3 PM today”
邮件3 (Spam): “Congratulations! You have won a free gift”
邮件4 (Not Spam): “Project update attached”

  • 特征提取:
    首先,从每封邮件中提取特征(即单词)。在这个例子中,我们的特征是邮件中的单词。例如:

“Win”, “million”, “dollars”, “now”, “Meeting”, “project” 等等。
我们可以将每封邮件转化为一个包含特征的向量:

  • 邮件1:[“Win”, “million”, “dollars”, “now”]
  • 邮件2:[“Meeting”, “3”, “PM”, “today”]
  • 邮件3:[“Congratulations”, “You”, “won”, “free”, “gift”]
  • 邮件4:[“Project”, “update”, “attached”]
    标签:
    邮件1 -> Spam (1)
    邮件2 -> Not Spam (0)
    邮件3 -> Spam (1)
    邮件4 -> Not Spam (0)
  • 最大熵模型的目标:
    模型的目标是根据训练数据估计每封邮件属于垃圾邮件(Spam)或非垃圾邮件(Not Spam)的概率。为了最大化模型的熵,我们引入约束条件,比如已知邮件中出现某些单词时其分类的概率。

  • 训练过程:
    我们用最大熵模型来训练这些数据。模型根据邮件中的单词(特征)以及历史邮件的分类信息,计算每个单词在垃圾邮件和非垃圾邮件中的条件概率

如果"win"这个单词在训练集中大多数时候出现在垃圾邮件中,模型会为"win"分配一个较高的垃圾邮件概率。
如果"meeting"这个单词大多数时候出现在非垃圾邮件中,模型会为它分配一个较高的非垃圾邮件概率。

  • 特征是独立的,通常通过词袋模型(Bag of Words)或 TF-IDF(词频-逆文档频率)方法将文本转换为数值表示。
  • 在这个例子中,特征提取可以使用词袋模型。对于每封邮件,提取其中的单词并将其表示为一个向量。例如:
    邮件1(“Win a million dollars now”)转换为 [1, 0, 0, 1, 0…],其中每个位置代表一个单词的出现次数。
    邮件2(“Meeting at 3 PM today”)转换为 [0, 1, 0, 0, 1…],同样代表单词出现的频率。
    在这里插入图片描述
  • 分类预测:
    当有一封新邮件出现时,例如 “Free gift awaiting you”, 最大熵模型会计算它属于垃圾邮件和非垃圾邮件的概率:

P(Spam | “Free gift awaiting you”) = ?
P(Not Spam | “Free gift awaiting you”) = ?

代码

这个很简单,复杂问题可能要考虑更多

from sklearn.feature_extraction.text import CountVectorizer
from sklearn.linear_model import LogisticRegression

# 训练样本数据
emails = ["Win a million dollars now", "Meeting at 3 PM today",
          "Congratulations! You have won a free gift", "Project update attached"]

# 标签:1表示垃圾邮件,0表示非垃圾邮件
labels = [1, 0, 1, 0]

# 特征提取:使用词袋模型
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(emails)

# 最大熵模型近似:使用逻辑回归实现
model = LogisticRegression()
model.fit(X, labels)

# 测试新邮件
new_emails = ["Free gift awaiting you", "Meeting tomorrow"]
X_new = vectorizer.transform(new_emails)

# 预测
predictions = model.predict(X_new)
print("预测结果:", predictions)  # 输出预测类别:1 表示垃圾邮件,0 表示非垃圾邮件

# 计算每类概率
probs = model.predict_proba(X_new)
print("分类概率:", probs)  # 输出每封邮件属于垃圾邮件和非垃圾邮件的概率

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

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

相关文章

哪些软件可以监控电脑屏幕?四款优秀的屏幕电脑监控软件

你是否曾好奇,员工们在电脑前的忙碌究竟是在提高公司业绩,还是在成为“网上冲浪”高手? 或者,作为家长,你是否想知道孩子们的学习状态是如火如荼,还是在和游戏“斗智斗勇”?不管是办公还是家庭…

图纸加密软件哪个最好用?2024年好用的6款图纸加密软件分享!好用不踩雷!

某知名设计公司的年度发布会上,管理层突然被一个坏消息打断——公司的一份核心图纸被泄露到互联网上,导致重要的合作项目搁浅,直接损失数百万。 这样的事件不是个例,为此,很多企业意识打破图纸加密对保护企业知识产权和…

机械设计基础知识---材料硬度

一、定义 硬度,物理学专业术语,材料局部抵抗硬物压入其表面的能力称为硬度。固体对外界物体入侵的局部抵抗能力,是比较各种材料软硬的指标。由于规定了不同的测试方法,所以有不同的硬度标准。各种硬度标准的力学含义不同&#xf…

业务资源管理模式语言13

解决方案: 创建一个与“Resource”类相关的“Resource Delivery”类来控制资源交付的确认过程。因为交货是与交易相关的,“Resource”类与“Resource Delivery”类是“1 to 1”关系。如果你采用了子模式“Resource Measurement”或者采用了“ItemizeThe…

动手学深度学习(pytorch土堆)-04torchvision中数据集的使用

CIFAR10 CIFAR-10 数据集由 10 个类的 60000 张 32x32 彩色图像组成,每个类有 6000 张图像。有 50000 张训练图像和 10000 张测试图像。 数据集分为 5 个训练批次和 1 个测试批次,每个批次有 10000 张图像。测试批次包含每个类中随机选择的 1000 张图像…

Unity 给模型贴上照片

Unity将真实世界的照片贴图到模型上 原因 模拟仿真,直接使用照片肯定是效果最好的,省下做材质了 直接拖动即可 导入图片到Unity中将图片修改为Sprite模式直接将图片拖动到Scene面板的物体上即可 注意:是将图片拖动到Scene面板的物体上&a…

【Ubuntu】安装常用软件包

安装java 直接输入java,如果没有安装的话会提醒你输入命令安装,类似 Command java not found, but can be installed with: sudo apt install jdkxxxxxxxxxxxxxx然后选一个版本安装就好,我这里选的jdk17,安装完确认一下 ubuntuVM-4-13-ubu…

【深度学习】注意力机制介绍,了解什么是注意力计算规则以及常见的计算规则,知道注意力机制的工作流程

1注意力机制介绍 1.1 注意力概念 我们观察事物时,之所以能够快速判断一种事物(当然允许判断是错误的), 是因为我们大脑能够很快把注意力放在事物最具有辨识度的部分从而作出判断,而并非是从头到尾的观察一遍事物后,才能有判断结果. 正是基于…

动物检测系统源码分享

动物检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

el-tree父子不互相关联时,手动实现全选、反选、子级全选、清空功能

el-tree父子不互相关联时,手动实现全选、反选、子级全选、清空功能 1、功能实现图示 2、实现思路 当属性check-strictly为true时,父子节点不互相关联,如果需要全部选中或选择某一节点下的全部节点就必须手动选择每个节点,十分麻…

速卖通在哪些国家受欢迎?速卖通怎么选品?选品方式有哪些?

速卖通(AliExpress)是阿里巴巴集团旗下的一家跨境电商平台,也是全球第三大英文在线购物网站,为全球消费者提供了一个方便、多样化的购物平台,在中国跨境出口B2C平台中占据领先地位。相关数据统计,今年上半年…

砥砺前行 智护健康:衢州骨伤科医院建院十五周年庆典圆满启动

2024年9月12日,衢州骨伤科医院建院十五周年庆典圆满启动。作为邦尔骨科医院集团的第二家医院,衢州骨伤科医院创办于2009年,建院十五年来坚持集团宗旨与愿景,致力于将骨科领先技术和优质服务带给老百姓,现已成为区域领先…

input输入框之间有间隙的解决方案

1&#xff0c;浮动 浮动是处理元素排列方式的方法之一&#xff0c;使用浮动&#xff08;float&#xff09;可以帮助更好的排列元素位置 <p>源代码</p> <input type"text" name"name1" /> <input type"text" name"na…

JAVA宠物界的Uber同城遛狗兼职系统小程序源码

宠物界的Uber同城遛狗兼职系统&#xff0c;让爱宠自由奔跑&#xff01; &#x1f43e; 开篇&#xff1a;解锁宠物新生活方式 在这个快节奏的城市里&#xff0c;我们的爱宠是否也常常因为主人的忙碌而错失户外的欢乐时光&#xff1f;别担心&#xff0c;宠物界的“Uber”——同…

ArgoWorkflow教程(四)---Workflow 日志归档

上一篇我们分析了argo-workflow 中的 artifact&#xff0c;包括 artifact-repository 配置以及 Workflow 中如何使用 artifact。本篇主要分析流水线 GC 以及归档,防止无限占用集群中 etcd 的空间。 **【ArgoWorkflow 系列】**持续更新中&#xff0c;搜索公众号【探索云原生】订…

nlohmann::json中有中文时调用dump转string抛出异常的问题

问题描述 Winodows下C开发想使用一个json库&#xff0c;使用的nlohmann::json&#xff0c;但是遇到json中使用中文时&#xff0c;转成string&#xff0c;会抛出异常。 nlohmann::json contentJson;contentJson["chinese"] "哈哈哈";std::string test con…

从卫星和飞机等不同传感器方面由QGIS 遥感分析

在地理信息科学 (GIS) 中,遥感是指从远处获取有关地球表面特征信息的行为。遥感数据是从许多不同的平台获取而来,包括卫星、飞机和具有许多不同传感器的固定仪器,包括光谱图像(相机)和激光雷达。最常见的遥感数据形式是卫星和航空图像。 为了充分实现这些照片的价值,需要…

搜狗翻译+3款工具安利,让语言不再是加班路上的绊脚石

现在不管是开跨国会议、搞国际项目合作&#xff0c;还是平时发个邮件啥的&#xff0c;语言问题常常是让人加班的主要由头。不过还算幸运&#xff0c;随着科技不断发展&#xff0c;出现了一堆既高效又智能的翻译工具。这些工具老厉害了&#xff0c;不但能大大提升我们的工作效率…

线程--线程同步

这里写目录标题 同步概念线程同步概念数据混乱原因 互斥量原理锁的注意事项1、cpu时间轮片2、建议锁总结 使用锁来管理线程同步问题产生主要函数init、destorylock、unlock代码注意事项 条件变量二级目录二级目录二级目录 信号量二级目录二级目录二级目录 一级目录二级目录二级…

算法:数字化系统的智慧核心

在当今快速发展的数字化时代&#xff0c;算法在数字化系统中扮演着至关重要的角色。从数字孪生系统到物联网应用&#xff0c;算法不仅是技术进步的推动力&#xff0c;更是实现智能化、自动化的核心。本文将探讨数字化系统中算法的重要性&#xff0c;以及它们是如何被实现和集成…