MLE MAP EM
1.最大似然估计 (MLE):
什么是最大似然估计?
问题:给定一组观察数据还有一个参数待定的模型,如何来估计这个未知参数呢?
观察数据(x1,y1)......(xn,yn) 待定模型参数为θ,模型为f(x;θ)。这时候可以借助观察数据来估计这个θ。这就是最大似然函数估计。
举个例子:
假设我们有一个袋子,里面装着白球和黑球,但是我们不知道他们分别有多少个,这时候需要我们估计每次取出一个球是白球的概率是多少?如何估计呢? 可以通过连续有放回的从袋子里面取一百次,看看是白球还是黑球。假设取100次里面 白球占70次,黑球30次。设抽取是白球的概率为P。 那么一百次抽取的总概率为 p(x;p)
p(x;p)=p(x1,x2.......x100;θ)=p(x1;θ)*p(x2;θ)........p(x100;θ)
=p70*(1-p)30
那么这时候我们希望可以使这个概率最大。
求导:logp(x;p)=logp70*(1-p)30 另导数为0则可以求出p=0.7(同理可以用到连续变量里面,这时候就是概率密度函数的乘积so easy)
是不是很简单,对!就是这么简单!其实最大似然估计就是在给定一组数据和一个待定参数模型,如何确定这个模型未知参数,使得这个确定后的参数模型产生的已知数据概率最大。当然这里我只是举了一个只有一个未知参数的估计方法,多个未知参数的做法是一样的,就是求似然函数求导取最大值。其实并不是所有似然函数都可以求导的,当似然函数无法求导时就需要根据定义求使得L(θ)最大的θ。
举个例子,以抛筛子为例:

2.最大后验估计 (MAP):
最大后验估计就是在原来的MLE的基础上加上了先验知识:

EM算法 :
相信大家对似然函数已经手到擒来了。那么我们就来看看高深的。
一个概率模型有时候既含有观察变量,有含有隐变量。如果只有观察变量那么我们可以用最大似然法(或者贝叶斯)估计未知参数,但是如果还含有隐变量就不能如此简单解决了。这时候就需要EM算法。
大家可能对这种问题不是很明白,也不太明白隐变量是什么意思。我举个例子(引用统计学习方法的例子):
有3枚硬币分别记为A,B,C,并且出现正面概率分别为p ,q ,k.规则如下:先抛硬币A,如果为正面就选择B,否则选择C,然后再将选择的硬币(B或者C抛),然后观测结果。正面为1 反面为0.独立重复实验10次结果如下:1,1,1,0,0,0,1,1,1,0。我们并不知道抛A硬币时为正面还是方面,只知道最后的结果,问如何估计p,q,k的值?
如果我们知道抛的是哪个硬币就可以使用最大似然估计来估计这些参数,但是我们不知道。因为有p的原因,所以无法估计,这个p就是隐变量
log(Θ)=Σlogp(x;Θ)=Σlogp(x,p;Θ),Θ就是要求的q,k 待定参数,x为观测数据,因为这个p导致我们无法求解MaxΣlogp(x;Θ)。
还比如说调查 男生 女生身高的问题。身高肯定是服从高斯分布。以往我们可以通过对男生抽样进而求出高斯分布的参数,女生也是,但是如果我们只能知道某个人的高度,却不能知道他是男生或者女生(隐含变量),这时候就无法使用似然函数估计了。这个时候就可以使用EM方法。
分为E和M两步:
E步:
首先通过随机赋值一个我们要求的参数,然后求出另外一个隐含参数的后验概率。这是期望计算过程,我们首先通过随便赋予模型参数的初始值p,q,k,求出各个数据到模型的结果。
M步
用求出来的隐含参数的后验概率进行对传统的似然函数估计,对要求参数进行修正。迭代直到前后两次要求的参数一样为止
其实可以这么简单理解:就是在无监督聚类的时候,我们不知道模型的参数(比如为高斯分布),这时候我们就随便赋值给模型的待定参数(u和ó)。然后我们就可以计算出各个数据分别属于那一类。然后我们用这些分类好的数据重新估计u和ó。
参考 : http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html
MLE MAP EM的更多相关文章
- MLE & MAP
MLE & MAP : data / model parameter MLE: (1) keep the data fixed(i.e., it has been observed) and ...
- 机器学习的MLE和MAP:最大似然估计和最大后验估计
https://zhuanlan.zhihu.com/p/32480810 TLDR (or the take away) 频率学派 - Frequentist - Maximum Likelihoo ...
- 关于Latent Dirichlet Allocation
今天,也没出去,晚上宿舍没有人,自己思考了下人生,毕设还是大事,觉得现在有必要把LDA从前往后彻彻底底的读一遍了,因为现在的感觉就是什么都知道一点皮毛,但是理解的都不深,LDA好像(恩,相当不好)现在 ...
- Wormholes 最短路判断有无负权值
Description While exploring his many farms, Farmer John has discovered a number of amazing wormholes ...
- 主成分分析 Principle Component Analysis
一.主要思想 利用正交变换把可能线性相关变量表示的观测数据,转换为由少数几个线性无关变量(主成分)表示的数据.(重构原始特征空间:线性降维) 要尽可能保留原始数据中的信息,两个思路:最大投影方差.最小 ...
- [Scikit-learn] 1.1 Generalized Linear Models - Bayesian Ridge Regression
1.1.10. Bayesian Ridge Regression 首先了解一些背景知识:from: https://www.r-bloggers.com/the-bayesian-approach- ...
- 最大似然估计 (MLE) 最大后验概率(MAP)
1) 最大似然估计 MLE 给定一堆数据,假如我们知道它是从某一种分布中随机取出来的,可是我们并不知道这个分布具体的参,即"模型已定,参数未知". 例如,我们知道这个分布是正态分布 ...
- 最大似然估计(MLE)和最大后验概率(MAP)
最大似然估计: 最大似然估计提供了一种给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”.简单而言,假设我们要统计全国人口的身高,首先假设这个身高服从服从正态分布,但是该分布的均值与方差未知 ...
- 频率学派与贝叶斯学派(先验分布与后验分布,MLE和MAP)
频率学派(古典学派)和贝叶斯学派是数理统计领域的两大流派. 这两大流派对世界的认知有本质的不同:频率学派认为世界是确定的,有一个本体,这个本体的真值是不变的,我们的目标就是要找到这个真值或真值所在的范 ...
随机推荐
- Codeforces Round #207 (Div. 1)B(数学)
数学so奇妙.. 这题肯定会有一个循环节 就是最小公倍数 对于公倍数内的相同的数的判断 就要借助最大公约数了 想想可以想明白 #include <iostream> #include< ...
- 如何使java中double类型不以科学计数法表示
在java中,把一个double或者BigDecimal的小数转换为字符串时,经常会用科学计数法表示,而我们一般不想使用科学计数法,可以通过:DecimalFormat a = new Decimal ...
- Java实现RC4加解密
package com.vrv.paw.utils; public class RC4Util { public static String decry_RC4(byte[] data, String ...
- Java [Leetcode 66]Plus One
题目描述: Given a non-negative number represented as an array of digits, plus one to the number. The dig ...
- 2013.11.15 初学ant构建
该做的事情都差不多做完了,今天开始用ant构建,所以学了下ant,其实要不是因为ubuntu时不时的抽风我应该早就可以开始构建了,但重写的时候也想清楚了一些逻辑,优化了一些地方.下面是我这辈子写的第一 ...
- oracle 回收站管理
oracle10g,在pl/sql中选中删除后会出现类似:BIN$nJ5JuP9cQmqPaArFei384g==$0的表. 1.查看回收站 select * from user_recyclebin ...
- Library cache lock/pin详解
Library cache lock/pin 一.概述 ---本文是网络资料加metalink 等整理得来一个实例中的library cache包括了不同类型对象的描述,如:游标,索引,表,视图,过程 ...
- Oracle RAC 客户端连接负载均衡(Load Balance)
实现负载均衡(Load Balance)是Oracle RAC最重要的特性之一,主要是把负载平均分配到集群中的各个节点,以提高系统的整体吞吐能力.通常情况下有两种方式来实现负载均衡,一个是基于客户端连 ...
- C#中使用visio控件
C#中使用visio控件 2012-08-25 18:14:19| 分类: 技术相关|举报|字号 订阅 其实就是C#访问VISIO的自动化模型,以前做了不少C#和Excle及word 的交互 ...
- ubuntu1204上不能正常用emacs配合gocode进行自动补全
我按gocode的页面https://github.com/nsf/gocode上去做,可是还是未成功,,我确认auto-complete在c-mode中是可以使用的,因为有补全出来了, 我再找了ht ...