机器学习(二十五)— 极大似然估计、贝叶斯估计、最大后验概率估计区别

  最大似然估计(Maximum likelihood estimation, 简称MLE)和最大后验概率估计(Maximum aposteriori estimation, 简称MAP)是很常用的两种参数估计方法。

1、最大似然估计(MLE)

  在已知试验结果(即是样本)的情况下,用来估计满足这些样本分布的参数,把可能性最大的那个参数作为真实的参数估计。

  也就是说,最大似然估计,就是利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值(模型已知,参数未知)。

(1)基本思想

  当从模型总体随机抽取n组样本观测值后,最合理的参数估计量应该使得从模型中抽取该n组样本观测值的概率最大,而不是像最小二乘估计法旨在得到使得模型能最好地拟合样本数据的参数估计量。

  例如,我们知道这个分布是正态分布,但是不知道均值和方差;或者是二项分布,但是不知道均值。 最大似然估计(MLE,Maximum Likelihood Estimation)就可以用来估计模型的参数。MLE的目标是找出一组参数,使得模型产生出观测数据的概率最大。

(2)模型推导

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

  所以假设似然函数为:

  接下来我们求参的准则便是如名字一样最大化似然函数

  如果求得的θ 是参数空间中能使似然函数最大的取值,则θ是最可能的参数取值,即最大的似然估计值。

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

  所以最大化的目标便是:

  之后对参数求偏导,偏导数为0,求解最优值。

   求最大似然函数估计值的一般步骤: 
(1) 写出似然函数
(2) 对似然函数取对数,并整理
(3) 求导数
(4) 解似然方程

(3)推导举例

  我们拿这枚硬币抛了10次,得到的数据(x0)是:反正正正正反正正正反。我们想求的正面概率θθ是模型参数,而抛硬币模型我们可以假设是 二项分布。那么,出现实验结果x0(即反正正正正反正正正反)的似然函数是多少呢?

  对似然函数求对数,得到对数似然函数后对参数θ求导,令导数为0,求解θ的值。此处求得θ=0.7。

(4)最大似然估计的特点:

1.比其他估计方法更加简单;

2.收敛性:无偏或者渐近无偏,当样本数目增加时,收敛性质会更好;

3.如果假设的类条件概率模型正确,则通常能获得较好的结果。但如果假设模型出现偏差,将导致非常差的估计结果。

 2、贝叶斯估计

  贝叶斯统计的重点:参数未知且不确定,因此作为随机变量,参数本身也是一个分布,同时,根据已有的信息可以得到参数θ的先验概率,根据先验概率来推断θ的后验概率。

  不同于ML估计,不再把参数θ看成一个未知的确定变量,而是看成未知的随机变量,通过对第i类样本Di的观察,使概率密度分布P(Di|θ)转化为后验概率P(θ|Di),再求贝叶斯估计。

  贝叶斯估计是在MAP上做进一步拓展,此时不直接估计参数的值,而是允许参数服从一定概率分布。极大似然估计和极大后验概率估计,都求出了参数theta的值,而贝叶斯推断则不是,贝叶斯推断扩展了极大后验概率估计MAP(一个是等于,一个是约等于)方法,它根据参数的先验分布P(theta)和一系列观察X,求出参数theta的后验分布P(theta|X),然后求出theta的期望值,作为其最终值。另外还定义了参数的一个方差量,来评估参数估计的准确程度或者置信度。

  贝叶斯估计:从参数的先验知识和样本出发。期望后延信息在真实的θ值处有一个尖峰。

  贝叶斯公式:

  根据特征条件独立性假设:其中X 是多个特征的矩阵,Y 是类别标签

  我们可以计算出任一样本x属于类别的概率,选择其中概率最大者便可作为其分类的类标。

基本步骤:

3、似然函数和概率函数

  概率研究的问题是,已知一个模型和参数,怎么去预测这个模型产生的结果的特性(例如均值,方差,协方差等等)。统计是,有一堆数据,要利用这堆数据去预测模型和参数。

  概率是已知模型和参数,推数据。统计是已知数据,推模型和参数。

  在统计里面,似然函数和概率函数却是两个不同的概念(其实也很相近就是了)。

  对于这个函数:P(x|θ)。输入有两个:x表示某一个具体的数据;θ表示模型的参数。

  如果θ是已知确定的,x是变量,这个函数叫做概率函数(probability function),它描述对于不同的样本点x,其出现概率是多少。

  如果x是已知确定的,θ是变量,这个函数叫做似然函数(likelihood function), 它描述对于不同的模型参数,出现x这个样本点的概率是多少。

4、最大后验概率估计(MAP)

    最大似然估计是求参数θ, 使似然函数P(x0|θ)最大。

  最大后验概率估计则是想求θ使P(x0|θ)P(θ)最大。求得的θ不单单让似然函数大,θ自己出现的先验概率也得大。

  最大后验概率估计是最大似然和贝叶斯估计的结合,

  其实如果MAP的后验概率中P(θ) = 1,就是最大似然概率。也就是说最大似然概率默认未知参数 θ 取值都是等可能性的,而最大后验概率在参数估计时考虑了参数的先验概率。

 4、对比总结

  1. 极大似然估计、最大后验估计和贝叶斯估计都是参数估计方法
  2. 极大似然估计和最大后验估计都是点估计,即把参数看成未知常数,通过最大化似然和后验概率实现。
  3. 贝叶斯估计把参数看成一个随机变量,属于分布估计,然后求该随机变量在数据集D下的条件期望。
  4. 当先验为均匀分布时,极大似然估计和最大后验估计是等价的。即估计参数的先验概率为 1 ;
  5. 当先验和似然都是高斯分布时,最大后验估计和贝叶斯估计是等价的。
  6. 通常情况下,贝叶斯估计的积分很难计算,但可以采取一些近似方法,如拉普拉斯和变分近似以及马尔科夫链蒙特卡洛抽样。

参考:https://blog.csdn.net/u011508640/article/details/72815981

原文地址:https://www.cnblogs.com/eilearn/p/9433911.html

时间: 2024-10-03 21:42:12

机器学习(二十五)— 极大似然估计、贝叶斯估计、最大后验概率估计区别的相关文章

攻城狮在路上(叁)Linux(二十五)--- linux内存交换空间(swap)的构建

swap的功能是应付物理内存不足的状况,用硬盘来暂时放置内存中的信息. 对于一般主机,物理内存都差不多够用,所以也就不会用到swap,但是对于服务器而言,当遇到大量网络请求时或许就会用到. 当swap被使用的时候,主机的硬盘灯就会闪烁不停. 本篇介绍两种方式:1.设置一个swap分区   2.创建一个虚拟内存的文件. 一.使用物理分区构建swap: 1.首先是分区: A.fdisk /dev/sda; <== 根据后续提示创建一个分区. B.修改分区的ID,因为fdisk默认将分区的ID作为文件

每日算法之二十五:Divide Two Integers

Divide two integers without using multiplication, division and mod operator. 不使用乘法.除法和求模运算求两个数相除. class Solution { public: long long internalDivide(unsigned long long dividend,unsigned long long divisor) { if(dividend<divisor) return 0; int result =

关于心理的二十五种倾向(查理&amp;#183;芒格)-2

5)避免不一致倾向避免不一致倾向实际上就是人天生就害怕改变.相同是由于人类大脑的生理机制决定的.由于这样的倾向能够带来节省运算空间和能量的优点.这样的抗改变模式的形成,可能的原因例如以下:A) 迅速作出决定对生存来说至关重要,而这样的抗改变模式有助于更快的作出决定;     这里有第四个倾向的因素,对于生存至关重要的反应(遇到生存威胁时),反应一定要快,必须形成固化的模式.这也是我们对于紧急事件的处理常常採用不断反复模拟训练的原因.B) 能够通过群体协作来获得生存优势,假设每一个人总是不停地改变

【管理心得之二十五】组织中的骂名 ----------墙头草

场景再现 ====================== {会议前} 老张:喂,老王.这次的讨论议题你怎么看? 老王:暂时还没有想好,你有什么高见? 老张:这还不简单,以前类似的事发生过. "首先..........其次..........最后........."   你看看怎样? 老王:嗯{点点头} {会议中} 老  张:"方案A 是... ... ... ... " 方案B:"方案B 是... ... ... ... " 方案C:"方

企业搜索引擎开发之连接器connector(二十五)

下面开始具体分析连接器是怎么与连接器实例交互的,这里主要是分析连接器怎么从连接器实例获取数据的(前面文章有涉及基于http协议与连接器的xml格式的交互,连接器对连接器实例的设置都是通过配置文件操作的,具体文件操作尚未详细分析(com.google.enterprise.connector.persist.FileStore类)) 本文以数据库连接器实例为例来分析,数据库类型连接器是通过调用mybatis(sqlmap框架)组件与数据库进行操作的,我们通过前端提交的数据库连接器实例表单信息最终存

二十五、防止表单重复提交

二十五.防止表单重复提交 防止表单重复提交: 有两种方式: 利用重定向<result type = "redirect"/> 使用拦截器 编写jsp页面 <s:form action="regist"> ????????<s:textfield name="name" label="姓名"></s:textfield> ????????<s:token/> ?????

二十五六岁的姑娘

随着时间的推移,我在慢慢的长高,长大,随之而来的责任也越来越重.如果把一个人的一生当做一天来看,那么无疑我已经走过一开始黎明,和初升朝阳的时期了……哪些一切美好希望的寄托已经不再属于我这个年纪该有的了.唯一能做的就是面对现实,到了该吃饭的时间我饿了就是饿了,要吃饭!我感觉我就是处于那个该吃饭时间. 二十五六岁的姑娘应该要有自己的一技之长了,虽然说一切只要想学都还来得及,可是时间不会给你太多准备和努力,只要一眨眼你错过了,那么也许是一辈子的遗憾又或者是那种一切太迟的吃力和无奈! 二十五六岁的姑娘要

Bootstrap &lt;基础二十五&gt;警告(Alerts)

警告(Alerts)以及 Bootstrap 所提供的用于警告的 class.警告(Alerts)向用户提供了一种定义消息样式的方式.它们为典型的用户操作提供了上下文信息反馈. 您可以为警告框添加一个可选的关闭按钮.为了创建一个内联的可取消的警告框,请使用 警告(Alerts) jQuery 插件. 您可以通过创建一个 <div>,并向其添加一个 .alert class 和四个上下文 class(即 .alert-success..alert-info..alert-warning..ale

QT开发(二十五)——QT模板库

QT开发(二十五)--QT模板库 一.QTL模板库简介 QT模板库(QT Template Library 简称QTL)是一套提供对象容器的模板. QTL提供了对象的链表.对象的矢量(动态数组).从一个类型到另一个类型的映射(或称为字典)和相关的迭代器和算法.容器是包含和管理其它对象的一个对象,并且提供迭代器对被包含的对象进行访问. 1.QT容器类简介 容器是能够在内存中存储其他特定类型的对象的对象,一般是通用的模板类.QT提供了自己的一套容器类,即在QT的应用程序中,可以使用标准C++的STL

JAVA基础再回首(二十五)——Lock锁的使用、死锁问题、多线程生产者和消费者、线程池、匿名内部类使用多线程、定时器、面试题

JAVA基础再回首(二十五)--Lock锁的使用.死锁问题.多线程生产者和消费者.线程池.匿名内部类使用多线程.定时器.面试题 版权声明:转载必须注明本文转自程序员杜鹏程的博客:http://blog.csdn.net/m366917 我们来继续学习多线程 Lock锁的使用 虽然我们可以理解同步代码块和同步方法的锁对象问题,但是我们并没有直接看到在哪里加上了锁,在哪里释放了锁,为了更清晰的表达如何加锁和释放锁,JDK5以后提供了一个新的锁对象Lock Lock void lock():获取锁 v