本文主要是介绍极大似然估计(MLE)和贝叶斯估计(MAP),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
极大似然估计(MLE)和贝叶斯估计(MAP)
标签(空格分隔):机器学习笔记
极大似然估计与贝叶斯估计是统计中两种对模型的参数确定的方法,两种参数估计方法使用不同的思想。
前者来自于频率派,认为参数是固定的,我们要做的事情就是根据已经掌握的数据来估计这个参数(上帝眼中参数 θ 早已经固定了,带入 xi 样本来求 θ ,根据样本来求 θ ,最大的值就是最大的估计,就是我们认为固定的值) :X=(x1,x2...xn) 样本集
p(X|θ)=∏ni=1(xi|θ)
一般取对数,求偏导数得出 θ
MLE的初衷就是选择,使得该模型
产生的这些样本数据概率最大
MLE的初衷就是选择 θ ,使得该模型产生的这些样本数据概率最大
而后者属于贝叶斯派,认为参数也是服从某种概率分布的,已有的数据只是在这种参数的分布下产生的。所以,直观理解上,极大似然估计就是假设一个参数 θ,然后根据数据来求出这个θ. 而贝叶斯估计的难点在于p(θ) 需要人为设定,之后再考虑结合MAP (maximum a posterior)方法来求一个具体的θ:
θ̂ =argmaxθp(θ|X)=argmaxθp(θ)∏i=1np(xi|θ)
同样取对数:
θ̂ =argmaxθlnp(θ|X)=argmaxθ[lnp(θ)+∑i=1nlnp(xi|θ)]
朴素贝叶斯就是MAP的一个应用
由于朴素贝叶斯是一个生产模型,用来做分类器使用。
假设总共的类别是 {Ck} 类,那么假设一封邮件判断它是不是垃圾邮件, Ck={0,1}
0代表正常邮件,1代表垃圾邮件。
假设一封邮件 X={x(1),x(2),x(3)....x(n)}
先验概率:
朴素贝叶斯假设条件独立这样就可以概率相乘:
P(X=x|Y=ck)=∏nj=1P(X=x(1),X=x(2)...X=x(n)|Y=ck)
= ∏nj=1P(X=x(j)|Y=Ck)
根据贝叶斯公式:
P(B|A)=P(A|B)P(B)P(A)
邮件分类:
这封邮件是 ck 类的概率
P(Y=Ck|X=x)=P(Y=Ck)∏P(X=xi|Y=Ck)P(X)=P(Y=Ck)∏P(X=xi|Y=Ck)∑kP(Y=Ck)∏P(X=xi|Y=Ck)
P(X)就是X集合的联合概率分布
y1是指正常邮件的概率;要y2是指垃圾邮件的概率
y1=P(Y=0)∏P(X=xi|Y=0)P(Y=0)∏P(X=xi|Y=0)+P(Y=1)∏P(X=xi|Y=1)
y1=P(Y=1)∏P(X=xi|Y=1)P(Y=0)∏P(X=xi|Y=0)+P(Y=1)∏P(X=xi|Y=1)
分母是相同的 所以只需要比较分子,哪个大分到哪一类。
P(Y=0)=∑I(y=0)N 正常邮件占总共邮件N的比值。
P(X=x|Y=0)=∏nj=1P(X=x(j)|Y=0)=∏nj=1∑I(X=x(j),y=0)∑I(Y=0)
上面这俩式其实式最大似然估计的结果。
所以朴素贝叶斯是MAP和极大似然估计的结合(类别( θ )参数估计是MAP,最大似然估计出 p(Y=ck),p(X=xi|Y=ck) )。
所以极大似然估计与贝叶斯估计最大的不同就在于是否考虑了先验,而两者适用范围也变成了:极大似然估计适用于数据大量,估计的参数能够较好的反映实际情况;而贝叶斯估计则在数据量较少或者比较稀疏的情况下,考虑先验来提升准确率。
这篇关于极大似然估计(MLE)和贝叶斯估计(MAP)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!