贝叶斯估计和极大似然估计到底有何区别

article/2025/10/8 15:17:40

前言:原创不易,转载请告知并注明出处!微信搜索【机器学习与自然语言处理】公众号,定期发布知识图谱,自然语言处理、机器学习等知识,添加微信号【17865190919】进讨论群,加好友时备注来自CSDN。
在这里插入图片描述

在开始接触最大似然估计和贝叶斯估计时,大家都会有个疑问:最大似然估计和贝叶斯估计二者很相似,到底有何区别?本文便来说说二者的不同之处以及求参模型的公式推导!

预热知识必知

如何求类条件概率密度:
我们知道贝叶斯决策中关键便在于知道后验概率,那么问题便集中在求解类条件概率密度!那么如何求呢?答案便是:将类条件概率密度进行参数化。

最大似然估计和贝叶斯估计参数估计:
鉴于类条件概率密度难求,我们将其进行参数化,这样我们便只需要对参数进行求解就行了,问题难度将大大降低!比如:我们假设类条件概率密度p(x|w)是一个多元正态分布,那么我们就可以把问题从估计完全未知的概率密度p(x|w)转化成估计参数:均值u、协方差ε

所以最大似然估计和贝叶斯估计都属于参数化估计!…当然像KNN估计、Parzen窗这些就是非参数话估计啦!但是参数化估计也自然有它的缺点,下面会说的!

简述二者最大的区别

若用两个字高度概括二者的最大区别那就是:参数

最大似然估计和贝叶斯估计最大区别便在于估计的参数不同,最大似然估计要估计的参数θ被当作是固定形式的一个未知变量,然后我们结合真实数据通过最大化似然函数来求解这个固定形式的未知变量!

贝叶斯估计则是将参数视为是有某种已知先验分布的随机变量,意思便是这个参数他不是一个固定的未知数,而是符合一定先验分布如:随机变量θ符合正态分布等!那么在贝叶斯估计中除了类条件概率密度p(x|w)符合一定的先验分布,参数θ也符合一定的先验分布。我们通过贝叶斯规则将参数的先验分布转化成后验分布进行求解!

同时在贝叶斯模型使用过程中,贝叶斯估计用的是后验概率,而最大似然估计直接使用的是类条件概率密度。

下面会详细分析最大似然估计和贝叶斯估计求解模型!

从其他方面谈谈二者的异同

在先验概率能保证问题有解的情况下,最大似然估计和贝叶斯估计在训练样本趋近于无穷时得到的结果是一样的!但是实际的模式识别问题中,训练样本总是有限的,我们应如何选择使用哪种模型呢?下面简单分析分析:

(1) 计算复杂度:就实现的复杂度来说,肯定是有限选择最大似然估计,最大似然估计中只需要使用到简单的微分运算即可,而在贝叶斯估计中则需要用到非常复杂的多重积分,不仅如此,贝叶斯估计相对来说也更难理解;

(2)准确性:当采用的样本数据很有限时,贝叶斯估计误差更小,毕竟在理论上,贝叶斯估计有很强的理论和算法基础。

参数化估计的缺点:
贝叶斯估计和最大似然估计都是属于参数化估计,那么二者存在着一个共同的缺点:参数化估计虽然使得类条件概率密度变得相对简单,但估计结果的准确性严重依赖于所假设的概率分布形式是否符合潜在的真实数据分布。在现实应用中,与做出能较好的接近潜在真实分布中的假设,往往需要一定程度上利用关于应用任务本身的经验知识,否则若仅凭“猜测”来假设概率分布形式,很可能产生误导性的结果!所以没有什么算法是十全十美的啦!

下面便推导一下最大似然估计和贝叶斯估计所使用的模型,最大似然简单些,贝叶斯估计就比较复杂了!

最大似然估计模型推导

假设样本集D={x1 、x2 、…、xn},假设样本之间都是相对独立的,注意这个假设很重要!于是便有:

这里写图片描述
所以假设似然函数为:

这里写图片描述
接下来我们求参的准则便是如名字一样最大化似然函数喽:

这里写图片描述
下面有一个优化,专业名词为拉布拉斯修正

简单说:就是防止先验概率为0,那么上面的L(θ|D)整个式子便都成0 了,那肯定是不行的啊,不能因为一个数据误差影响了整个数据的使用。同时那么多先验概率相乘,可能出现下溢出。所以引入拉普拉斯修正,也就是取对数ln,想必大家在数学中都用过这种方法的。

所以做出下面变换:

这里写图片描述

所以最大化的目标便是:

这里写图片描述

求解上面问题便不多说了,使用数学中的微分知识便可:

这里写图片描述
然后使得偏导数为0:

自此便求出了参数θ,然后便得到了类条件概率密度,便可进行判别等接下来的工作了。

下面讲解贝叶斯模型推导,略微复杂些,下伙伴们仔细看啊!

贝叶斯估计模型推导

先说一句,贝叶斯估计最终也是为了得出后验概率。所以贝叶斯最终所要的得到推导的是:

(1)
正如上面所说我们便是要参数的先验分布通过贝叶斯规则转化成后验概率,也就是上面这个公式,接下来我们一起看看如何推导出上面后验概率的公式通过参数的先验概率。

上式中有:

这里写图片描述
带入后验概率的式子可得:

这里写图片描述

大家注意啦!!!这里也有个重要的假设,那就是样本之间是相互独立的,同时类也是相互独立的。所以有如下假设:

这里写图片描述
同时由于类之间相互独立,所以我们不用区分类了,便有:

这里写图片描述

这里给大家顺一下思路,所以我们要求后验概率便是要求出P(x|D)便可:

下面说明P(x|D)的推导:

这里写图片描述

正如我们前面所说上式中p(x| θ),我们假设它是一个已知的满足一定先验分布的,我们现在便是要知道:

这里写图片描述

下面给出其推导过程:

这里写图片描述

对于上式中的P(D|θ),还记得上面说的很重要的样本之间是独立的吗,所以和最大似然函数类似有:

这里写图片描述
因此最终我们便可以求得P(x|D):

这里写图片描述

这样我们将P(x|D)待会后验概率的式子便可求出后验概率了,所以我们完成了上面的说法,便是将参数θ 服从的先验概率分布转化成了后验概率分布了。

本文参考资料:
【1】Pattern Classification Second Edition
【2】Machine Learining in Action
【3】机器学习 著周志华


http://chatgpt.dhexx.cn/article/bPlZrnqw.shtml

相关文章

【数学基础】参数估计之贝叶斯估计

从统计推断讲起 统计推断是根据样本信息对总体分布或总体的特征数进行推断,事实上,这经典学派对统计推断的规定,这里的统计推断使用到两种信息:总体信息和样本信息;而贝叶斯学派认为,除了上述两种信息以外…

贝叶斯估计与贝叶斯学习的区别

概述: 贝叶斯估计:贝叶斯估计是把待估计的参数看作具有先验分布密度p()的随机变量,其取值与样本D有关,用训练样本D估计出最优的,记为。 贝叶斯学习 :把贝叶斯估计的原理用于直接从数据对概率密度函数进行…

vue3页面刷新

整理工作中用到的页面刷新方式&#xff1a; 1.provide/inject 2.router.go(0) 3.provide,inject 一、使用provide和inject 控制<router-view>的显示隐藏 默认<router-view v-if"isRouterAlive" /> isRouterAlive是true&#xff0c;在需要刷新的时候把这…

js 页面刷新

刷新为新的页面 获得当前页面的url,即浏览器显示的地址: window.location.href; 按下enter,页面刷新为百度 刷新为当前页面 1,history.go(0)2,location.reload() 3,location=location 4,location.assign(location) 5,document.execcommand(‘refresh‘) 6,window.na…

Web页面自刷新

简单介绍两种&#xff1a; 第一种Ajax Ajax Asynchronous JavaScript and XML&#xff08;异步的 JavaScript 和 XML&#xff09;&#xff0c;ajax就是基于浏览器提供的XMLHttpRequest对象来实现的 什么叫异步&#xff1f; 异步&#xff0c;不同的意思&#xff0c;这里也就…

页面刷新技术-------AJAX

一、前提步骤&#xff08;先把静态网页写出来&#xff09; 1、首先先要配置文件 2、然后去后端建立服务器&#xff0c;把该下载的模块下载好 var httprequire("http") var fsrequire("fs") var urlrequire("url") var querystringrequire(&quo…

页面刷新和vue页面刷新

history.go(0) location.reload() locationlocation location.assign(location) document.execCommand(Refresh) window.navigate(location) location.replace(location) document.URLlocation.href这几个都可以刷新&#xff1a; window.location.reload();刷新 window.locatio…

vue关于页面刷新的几个方式

在写项目的时候会遇到需要刷新页面重新获取数据&#xff0c;浅浅总结了一下几种方案。 1.this.$router.go(0) 强制刷新页面&#xff0c;会出现一瞬间的白屏&#xff0c;用户体验感不好。 2.location.reload() 也是强制刷新页面&#xff0c;和第一种方法一样&#xff0c;会造成…

HTML页面刷新及其应用例子

HTML页面刷新及其应用例子 刷新一般指重新载入当前页面。本文先给出html页面刷新重载方法汇总&#xff0c;再给出示例。 html页面刷新重载方法汇总 一、javascript页面刷新重载的方法&#xff1a; <a href"javascript:location.reload();">点击重新载入页面…

vue页面刷新

vue页面刷新 首先我们都知道vue属于单页面应用&#xff0c;默认境况下是不会触发刷新页面操作的&#xff0c;所以这个时候就需要我们通过事件来触发reload()来达到刷新操作 接下来我就为大家介绍三种刷新页面的方法 1. wiindow.location.reload([bForceGet])该方法强迫浏览…

hadoop 学习路线

Posted: Sep 6, 2013 Tags: Hadoophadoop familyroadmap Comments: 40 Comments Hadoop家族学习路线图 Hadoop家族系列文章&#xff0c;主要介绍Hadoop家族产品&#xff0c;常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa&am…

Hadoop 学习路线图

主要介绍Hadoop家族产品&#xff0c;常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa&#xff0c;新增加的项目包括&#xff0c;YARN, Hcatalog, Oozie, Cassandra, Hama, Whirr, Flume, Bigtop, Crunch, Hue等。 从2011年开始&…

Hadoop学习路线

Hadoop基础 Hadoop是一个能够对大量数据进行分布式处理的软件框架&#xff0c;它是一种技术的实现&#xff0c;是云计算技术中重要的组成部分&#xff0c;云计算的概念更广泛且偏向业务而不是必须拘泥于某项具体技术&#xff0c;云计算的存在只是一种新的商业计算模型和服务模…

第11期:Hadoop零基础学习路线

大家好&#xff0c;我是你们的老朋友老王随聊&#xff0c;今天和大家讨论的话题——Hadoop零基础应该怎么学&#xff1f; 通过这段时间和群里同学们交流&#xff0c;发现很多大学生甚至职场小白对Hadoop学习路线不是很清晰&#xff0c;所以我花了一些时间给大家整理了一张Hadoo…

hadoop学习路线图

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下&#xff0c;开发分布式程序。充分利用集群的威力进行高速运算和存储。而对于hadoop的学习是大数据学习中的重要一个环节&#xff0c;于是乎有很多人想要知道hadoop学习路线图。…

Python的基础编程

1. python的基本语法 Python是一个结合了解释性、编译性、互动性和面向对象的高级程序设计语言&#xff0c;结构简单&#xff0c;语法定义清晰&#xff1b; Python最具特色的就是使用缩进来表示代码块&#xff0c;不需要使用大括号{}&#xff0c;但每一个模块内的语句必须包含…

【Java编程指南】语法基础

目录 一、前言 二、关键字 三、数据类型 1.存储单元 2.存储范围 3.类型转换 四、常量 五、变量 六、标识符 七、注释 一、前言 学习目标 1&#xff1a;熟悉Java的关键字、数据类型&#xff08;包括范围&#xff09;、常量与变量的区别 学习目标 2&#xff1a;类型转…

新手小白零基础,该怎样学习编程呢?

零基础编程入门先学什么&#xff1f;编程语言有几百种&#xff0c;我们应该怎么选择。想学习编程&#xff0c;加入互联网行业&#xff0c;哪一个更有前途&#xff1f;在小白学习编程会有各种各样的问题&#xff0c;今天小编我就来为你解答。 一、怎么选择编程语言 编程语言有很…

如何打好编程基础

如何打好编程基础 这篇文章是写给那些真心想学编程的人看的——那些憋着一股狠劲儿,一定要做出个什么真东西,不学好不罢休的人;而不是那些「听说编程好玩」的人,在我看来,这种人永远都入不了编程的门,更别提做出个像样的东西来了。 心态调整 确定目标 在你学习编程之前思…

Web编程基础知识

前段时间零零碎碎看了Web编程相关内容&#xff0c;今天就整理了一下 Web编程&#xff0c;前端主要是htmlCSSJavaScript&#xff0c;后端使用最多的是PHPMySQL 此次教程主要是关于html、CSS、JavaScript和PHP的一些语法和使用细则 1 Html: HyperText Markup Language&#xff0c…