机器学习算法的另一个分支-贝叶斯算法原理(贝叶斯要解决什么问题)

目录

一、贝叶斯简介

二、贝叶斯要解决的问题

三、例子(公式推导)

四、实例

        1. 拼写纠正实例    

        2. 垃圾邮件过滤实例


一、贝叶斯简介

        1. 贝叶斯:英国数学家。1702年出生于伦敦,做过神甫。贝叶斯在数学方面主要研究概率论.对于统计决策函数、统计推断、统计的估算等做出了贡献。

        2. 贝叶斯方法源于他生前为解决一个“逆概”问题写的一篇文章

        3. 生不逢时,死后他的作品才被世人认可。

二、贝叶斯要解决的问题

        正向概率:假设袋子里有N个白球,M个黑球,伸手去摸一个出来黑球的概率是多大?白球?

        学过统计学的都知道(正向概率):

p(white \;ball \;)=\frac{N}{N+M}\;\;p(black \;ball \;)=\frac{M}{N+M}

        逆向概率:如果我们事先并不知道袋子里的黑白球比例,而是闭着眼睛摸出一个或好几个球,观察这些取出来的球的颜色之后,我们可以就此对袋子里的黑白球的比例做出什么样的推测。

三、例子(公式推导)

        一个学校男生有60%,女生有40%,男生总是穿长裤,女生则一半穿长裤,一半穿长裙。

        正向概率:随机挑选一个学生,他(她)穿长裤的概率和穿长裙的概率是多大?

        逆向概率:迎面走来一条长裤,看不到其他地方,无法确定性别,那么推断出他(她)的概率是多大呢??

        解:假设学校里有U个学生

                穿长裤的(男生):

                        U*p(Boy)*p(Pants|Boy)

                其中:p(Boy)是男生的概率=60%,p(Pants|Boy)是条件概率=100%,所有男生穿长裤。

                穿长裤的女生:

                        U*p(Girl)*p(Pants|Girl)

                求解:穿长裤的人里面有多少男(女)生?

                穿长裤的总数:

                        U*p(Boy)*p(Pants|Boy)+U*p(Girl)*p(Pants|Girl)

               p(Pants|Girl)=U*p(Girl)*p(Pants|Girl)/穿长裤的总数

                p(Girl|Paints)=p(Pants|Girl)=U*p(Girl)*p(Pants|Girl)/U*p(Boy)*p(Pants|Boy)+U*p(Girl)*p(Pants|Girl)

                化简:把U约掉,分母其实就是P(Pants),分子其实就是P(Pants,Girl) 

                用统计学的话说:令随机选择一个女生的事件为A,概率为p(A)     

                                                令随机选择一个穿长裤的人为事件B,概率为p(B)

                        则:

p(A|B) = \frac{p(A)*p(B|A)}{p(B)}

                            这就是贝叶斯公式。

四、实例

        1. 拼写纠正实例    

                我们看到用户输入一个不在词典的单词,那么输入法根据用户习惯还是会给出正确的几个单词,输入法这里做了一个事情:“猜测这个家伙到底真正想要输入的单词是什么呢?”

        解:P(我们猜测他想输入的单词|他实际输入的单词)

                比如输入了一个  tha 正确的可能是the,than等等

                P1(the|tha)         P2(than|tha)   ......对此排序,显示。

                用户实际输入的单词记为:D(D即为观测数据)

                猜测1:p(h1|D),猜测2:p(h2|D),猜测3:p(h3|D).....

                统一为:p(h|D)

p(h|D)=p(h)*p(D|h)/p(D)   

                对于不同的具体猜测h1,h2,h3...p(D)都是一样的,所以在比较p(h1|D),p(h2|D)....我们可以把这个常数忽略掉。

                即:p(h|D)\propto p(h)*p(D|h)

                对于给定的观测数据,一个猜测是好是坏,取决于“这个猜测本身独立的可能性大小(先验概率,Prior)”和“这个猜测生成我们观测的数据的可能性大小”

               

        结论:传统的机器学习的思想:极大似然函数,参数由数据决定

                    机器学习的另一个分支:贝叶斯公式,关注的先验条件(知识),关注数据对结果的影响。

        对于这个案例来说:p(h)先验概率:the,than就是在用户语料库中,进行词频统计,例如用户采用1000个词,the的概率1%,than的概率:0.1%。

                而p(tha|the)怎么算?这个可以由自己定制规则,the->tha做一次增删改查,than->tha做一次曾删改查,所以概率相同。

                得出p(the|tha)>p(tha|than)

        2. 垃圾邮件过滤实例

                问题:给定一封邮件,判定它是否属于垃圾邮件(类似于手机垃圾短信,系统自动识别放在垃圾短信中)   

                D来表示这封邮件,注意D是由N个单词组成。我们用 h+ 来表示垃圾邮件, h- 表示正常邮件。

        p(h-|D)=p(h-)*p(D|h-)/p(D)

                    p(h+|D)=p(h+)*p(D|h+)/p(D)           

        先验概率:p(h+),p(h-)这两个先验概率都是很好得出来的,只需要计算一个邮件库的垃圾邮件和正常邮件的概率即可。

        D里面含有N个单词d1,d2,d3....,p(D|h+)=p(d1,d2,...,dn|h+),就是说在垃圾邮件中出现根我们目前这封邮件一模一样的概率是多大???

        p(d1,d2,...,dn|h+)扩展为:p(d1|h+)*p(d2|d1,h+)*...*p(dn|d1,d2,...,dn-1,h+) 

          就是说这封邮件和垃圾邮件中的第一单词一样,这封邮件在和垃圾邮件中的第一单词一样的情况下,第二个单词一样的概率....我们发现这样算下去,太麻烦。

        提出朴素贝叶斯的概念:即每个特征之间是相互独立的,互不影响,这是一个强假设。用来化简的,我们想一想,真实的语言文本之间互不影响吗???当然不是,所以这样做并不能提升准确率。

        化简为:p(d1|h+)*p(d2|h+)*...*p(dn|h+)

        对于p(d1|h+)*p(d2|h+)*...*p(dn|h+)还采用在垃圾邮件中的词频统计方法即可。

       

                   

                

                

        

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Request对象

目录 1、GET方法 2、POST方法 引出问题:我们前面在赋值的时候,都是在一个页面进行赋值,那么怎么样将web1的数据传送到web2中呢,这时候,就要用到request方法了。 作用:Request对象主要是让服务器取得客户…

蓝桥杯算法题练习

1、20世纪有多少个星期一 (1901、1、1——2000、12、31) 方法一:python代码 方法二:excel工具(设置单元格格式,把日期换成周几的形式) 2、100个数相乘,结果有几个0 3、切面条 找规律:对折次数n 弯2^n-1 面…

公众号 服务号 代码创建菜单方法 公众号跳转小程序功能 40027错误的解决

需求 通过代码实现微信公众号的自定义菜单,新增、同步菜单。 分析 其实对一个公众号而言,菜单只要创建一次就可以了,如果你不是服务商,可以直接使用微信提供的代码调试工具,直接发送json字符串,为自己的…

系统开发实训小组作业week5 —— 用例描述与分析

目录 4.3 UC003电影浏览与查询 4.3.1 用例描述 4.3.2 活动图 4.3.3 界面元素 4.3.4 功能 4.4 UC004在线订票 4.4.1 用例描述 4.4.2 活动图 4.4.3 界面元素 4.4.4 功能 4.3 UC003电影浏览与查询 4.3.1 用例描述 用例号 UC003-01 用例名称 电影浏览与查询 用例描述…

App 测试必备 - 建议所有测试人收藏

移动端App性能测试需要关注多个方面,包括响应时间、稳定性、内存使用、CPU使用率、网络性能、电池消耗以及设备兼容性等。通过综合考虑这些方面,并在不同条件下进行全面的测试,可以确保应用程序在各种情况下都能够提供优质的用户体验&#xf…

AI人像写真解决方案,满足企业多样化视觉需求

美摄科技,作为一家专注于人工智能技术研发与应用的高新企业,深知企业对于高质量、高效率视觉内容的需求,特推出AI人像写真解决方案,为企业打开全新的视觉营销通道。 我们的AI人像写真解决方案,基于深度学习和计算机视…

解密EMC与EMI:电磁兼容性与电磁干扰?|深圳比创达电子

在现代电子设备愈发普及的时代,EMC(Electromagnetic Compatibility)和EMI(Electromagnetic Interference)成为了不容忽视的重要议题。本文将从根本概念出发,逐步深入探讨这两个关键领域,带领各位…

【信贷后台管理之登录(一)】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 目录结构一、项目搭建二、登录页面1.引入Element-ui2.LoginView.vue组件3.router文件的index.js引入组件 gitee仓库地址 目录结构 一、项目搭建 找到存放项目的文件…

解析旅游者心声:用PySpark和SnowNLP揭秘景区评论的情感秘密

简介: 在本篇博客中,我们将探讨如何利用PySpark和SnowNLP这两个强大的工具来分析大规模的旅游评论数据。通过结合携程和去哪儿的数据作为示例,我们将探索如何从海量的评论中提取有价值的情感信息和洞察。PySpark作为一种分布式计算框架,能够处理大规模的数据集,为我们提供…

Java服务运行在Linux----维护常用命令

想起来哪些再添加上去 查看Java程序进程 jps -l 查出进程后根据pid 查询程序所在目录 pwdx 31313 根据端口查找PID 根据pid杀死程序 kill -p 31313 查看目录下所有包含9527的文件 grep -rn 9527 查看磁盘空间 查找文件名"nginx"文件或模糊查找"*nginx*&quo…

Mysql中如何显示第几周

在数据分析中,经常需要对日期和时间进行格式化处理,以便更直观地展示和理解数据。 MySQL 5.7提供了强大的DATE_FORMAT函数,允许用户根据特定的格式字符串来显示日期和时间。 Week函数 最直接的是使用YEAR、WEEK函数 SELECTYEAR(NOW()) AS C…

健身运动耳机哪个牌子好?力荐五大品质翘楚的精品

健身已经成为许多人追求健康与活力的重要方式,而在健身的过程中,一款优质的耳机不仅能让你沉浸于音乐的世界,更能提升运动体验,激发无限潜能,那么如何选择一款既适合运动又品质卓越的耳机呢?今天我这个健身…

【热门话题】Yarn:新一代JavaScript包管理器的安装与使用

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 Yarn:新一代JavaScript包管理器的安装与使用引言一、Yarn的安装1. 系…

element-ui inputNumber 组件源码分享

今日简单分享 inputNumber 组件的实现原理,主要从以下四个方面来分享: 1、inputNumber 组件的页面结构 2、inputNumber 组件的属性 3、inputNumber 组件的事件 4、inputNumber 组件的方法 一、inputNumber 组件的页面结构。 二、inputNumber 组件的…

linux安装Zookeeper的详细步骤

1.Java环境确认 确保已经安装了Java环境,没有的自行安装 2.官网下载包 Apache ZooKeeper 3.安装 3.1上传到linux,解压 我的目录为/root/apache-zookeeper-3.8.4-bin 进入到/root/apache-zookeeper-3.8.4-bin/conf目录下,执行命令复制zoo…

由浅到深认识Java语言(44):Junit单元测试

该文章Github地址:https://github.com/AntonyCheng/java-notes 在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址:https://blog.c…

硬件12、PCB模块化布局

模块画布局其实就是根据原理图中绘制的小模块,比如3.3V芯片及其外围电路部分的元器件在PCB中放在一起进行布线,会方便很多 1、最好打开分屏,一边在原理图中选中模块,一边在PCB中绘制 2、选中原理图中的模块的所有元件&#xff0…

工业智能物联网关如何助力工业防震减灾

地震灾害难以预料,一旦发生往往就损失重大。对于工业领域而言,地震灾害的影响不仅仅是对人员安全的威胁,还包括对生产设施的破坏、生产进程的中断以及伴生的持续性经济损失。 随着5G、大数据、物联网技术的发展,面向工业领域构建一…

有效的数独-java

题目描述: 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图&#…

python如何获取word文档的总页数

最近在搞AI. 遇到了一个问题,就是要进行doc文档的解析。并且需要展示每个文档的总页数。 利用AI. 分别尝试了chatGPT, 文心一言, github copilot,Kimi 等工具,给出来的答案都不尽如人意。 给的最多的查询方式就是下面这种。 这个…