拉普拉斯平滑

作为机器学习的新手,最近在啃MLAPP,看到第3.3.4.1节讲的Laplace’s rule of succession后自己做了下笔记,欢迎大神们指正(如果能看得到的话)。

======分割线======

假设我们在做一个抛硬币的实验,硬币出现正面的概率是\(\theta\)。在已知前\(n\)次结果的情况下,如何推断抛下一次硬币出现正面的概率呢?

当\(n\)很大的时候,我们可以直接统计正面出现的次数,假设为\(n_1\),然后可以做出推断\(\theta=\frac{n_1}{n}\)。

但是,如果\(n\)很小,上述公式就不合适了。注意“硬币出现正面的概率是\(\theta\)”这句话的意思是说在实验次数趋近无穷的时候,正面出现的次数除以总抛掷次数近似等于\(\theta\)。而在实验次数很少的情况下这个比值可能偏离\(\theta\)很远。比如只做三次试验,而且全都是反面,如果利用上面的公式来进行计算将得到\(\theta=0\)。这时,我们可以利用贝叶斯定理来做一个更为合理的推断,结果就是Laplace’s rule of succession。

假设先验概率\(P(\theta)\)是\([0,1]\)上的均匀分布。似然 (likelihood)\(P(D|\theta)=\theta^{n_1}(1-\theta)^{n-n_1}\),其中\(D\)代表已知的实验结果(即出现\(n_1\)次正面)。这样,利用贝叶斯定理我们可以得到后验概率的计算公式为:

\(P(\theta|D)=\frac{P(D|\theta)P(\theta)}{\int_0^1 P(D|t)P(t)dt}\)。

根据假设,先验概率\P(\theta)\是\[0,1]\上的均匀分布,所以可以将其从积分中提出来并消去,得到:

\(P(\theta|D)=\frac{P(D|\theta)}{\int_0^1 P(D|t)t}\)

再利用公式(Beta函数的性质):

\(\int_0^1P(D|\theta)d\theta=\int_0^1\theta^{n_1}(1-\theta)^{n-n_1}d\theta=\frac{n_1!(n-n_1)!}{(n+1)!}\)

可以得到后验概率\P(\theta|D)\的表达式:

\(P(\theta|D)=\frac{(n+1)!}{n_1!(n-n_1)!}\theta^{n_1}(1-\theta)^{n-n_1}\)

可见其刚好是Beta分布\(B(n_1+1,n-n_1+1)\),其期望值为\(\frac{n_1+1}{n+2}\)。

求出了后验概率\(P(\theta|D)\)的期望值,便可以用它来作为下次出现正面的概率了。

可以发现后验概率相当于把出现正面的次数加上了1,然后把总抛掷次数加2。

这个方法在朴素贝叶斯分类器中有应用,可以参见《机器学习实战》中相关章节。

时间: 2024-11-10 11:02:23

拉普拉斯平滑的相关文章

理解平滑

平滑的目的也是正则化的目的之一,它是针对参数w而言,本质上就是要使得w的变化不要那么剧烈,有如下数学模型(假设最小化J): 左侧是一个典型的线性回归模型,(xi,yi)就是实际的观测值,w就是估计的参数,右侧就是一个正则化项.可以直观的感受到,正则化项实际上起到了限制参数w的"变化程度或变化幅值"的作用,具体来说,它可以令w的任何一个分量相比较于剩余分量变化程度保持一致,不至于出现变化特别明显的分量.直接的作用就是防止模型"过拟合",提高了模型的泛化性能.关于这一点

美丽联合业务升级下的机器学习应用

通常机器学习在电商领域有三大应用,推荐.搜索.广告,这次我们聊聊三个领域里都会涉及到的商品排序问题.从业务角度,一般是在一个召回的商品集合里,通过对商品排序,追求GMV或者点击量最大化.进一步讲,就是基于一个目标,如何让流量的利用效率最高.很自然的,如果我们可以准确预估每个商品的GMV转化率或者点击率,就可以最大化利用流量,从而收益最大. 蘑菇街是一个年轻女性垂直电商平台,主要从事服饰鞋包类目,2015年时全年GMV超过了百亿,后与美丽说合并后公司更名为美丽联合集团.2014年时入职蘑菇街,那时

机器学习之朴素贝叶斯分类

朴素贝叶斯分类 所有贝叶斯分类都是基于贝叶斯定理,朴素贝叶斯分类是贝叶斯分类中运用广泛简单的一种,另外,它还基于特征条件独立假设. 贝叶斯定理 贝叶斯定理是计算条件概率的公式,条件概率即是事件B发生的前提下事件A发生的概率,记作P(A|B),叫做事件B发生的情况下A的条件概率. 公式为:P(B|A)=P(A|B)P(B)P(A) 公式大致推导: 如图,有P(A|B)=P(A?B)P(B) 同样,也有P(B|A)=P(A?B)P(A) 于是,P(A|B)P(B)=P(B|A)P(A) 得到,P(B

ML(3.1): NavieBayes在R中的应用

朴素贝叶斯方法是一种使用先验概率去计算后验概率的方法, 具体见上一节. 算法包:e1071 函数:navieBayes(formule,data,laplace=0,...,subset,na.action=na.pass) Formule: 公式的形式:class~x1 + x2 + .....  相互作用是不允许的 data: 数据集 lapace: 正面双控制拉普拉期平滑.默认值(0)禁用拉普拉斯平滑.它的思想非常简单,就是对没类别下所有划分的计数为1,这样如果训练样本集数量充分大时,并不

NLP系列(4)_朴素贝叶斯实战与进阶(转)

http://blog.csdn.net/han_xiaoyang/article/details/50629608 作者: 寒小阳 && 龙心尘 时间:2016年2月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/50629608 http://blog.csdn.net/longxinchen_ml/article/details/50629613 声明:版权所有,转载请联系作者并注明出处 1.引言 前两篇博文介绍了朴素贝叶

朴素贝叶斯-Numpy-对数似然

<Machine Learning in Action> 为防止连续乘法时每个乘数过小,而导致的下溢出(太多很小的数相乘结果为0,或者不能正确分类) 训练: def trainNB0(trainMatrix,trainCategory): numTrainDocs = len(trainMatrix) numWords = len(trainMatrix[0]) pAbusive = sum(trainCategory)/float(numTrainDocs) p0Num = ones(num

自然语言处理一些读书笔记和自己的思考。

在知乎上搜索相关问题,有人推荐<数学之美>,之前粗略看过一次,这次想重新看一下并且做个读书笔记.下面是关于自然语言理解方面的一些读书笔记和自己的思考. 一. 自然语言处理历史: 自然语言处理最初发展的20多年里,相关科学家都极力通过电脑模拟人脑,试图用这种方式来处理人类语言,但是这种方式被证明是行不通的,成功几乎为零.NLP发展的第二阶段是70年代之后,科学家们终于找到了基于数学模型和统计的方法. 第一阶段的时候,学术界对人工智能和自然语言理解的普遍认识是:要让机器完成翻译或者语音识别等等,必

贝叶斯分类

原理 贝叶斯最基本的思想就是条件概率公式+条件独立假设. 它的思想有点类似于奥卡姆剃刀原理,举个例子,当前眼前走过一个黑人的时候,为你他是那里人,你第一眼想到的是他是个非洲人.因为非洲人普遍皮肤黑. 贝叶斯分类思想与此类似,当问你某个数据实例属于某个类别时候,会先去求各个类别下出现该数据实例的概率是多少,那个类别下概率越大,就分为哪个类别. 条件概率公式: P(xy) = P(y|x)*P(x) = P(x|y)*P(y) =>     P(y|x) = P(x|y)*P(y) / P(x) 而

原创:史上对BM25模型最全面最深刻的解读以及lucene排序深入讲解(佟学强)

垂直搜索结果的优化包括对搜索结果的控制和排序优化两方面,其中排序又是重中之重.本文将全面深入探讨垂直搜索的排序模型的演化过程,最后推导出BM25模型的排序.然后将演示如何修改lucene的排序源代码,下一篇将深入解读目前比较火热的机器学习排序在垂直搜索中的应用.文章的结构如下: 一.VSM模型简单介绍: 二.lucene默认的评分公式介绍: 三.概率语言模型中的二元独立模型BIM介绍: 四.BM25介绍: 五.lucene中的edismax解析器介绍以及评分公式源代码介绍: 六.修改排序源代码: