文本分析的参数估计方法

http://blog.csdn.net/pipisorry/article/details/51482120

文本分析的三类参数估计方法-最大似然估计MLE、最大后验概率估计MAP及贝叶斯估计。

参数估计

参数估计中,我们会遇到两个主要问题:(1)如何去估计参数的value。(2)估计出参数的value之后,如何去计算新的observation的概率,即进行回归分析和预测。

首先定义一些符号:

数据集X中的所有Xi,他们是独立同分布的,因此后面求X 的概率的时候,xi可以相乘。

贝叶斯公式

这个公式也称为逆概率公式,可以将后验概率转化为基于似然函数和先验概率的计算表达式,即

[概率图模型:贝叶斯网络与朴素贝叶斯网络]

最大似然估计MLE

顾名思义,当然是要找到一个参数,使得L最大,为什么要使得它最大呢,因为X都发生了,即基于一个参数发生的,那么当然就得使得它发生的概率最大。

最大似然估计就是要用似然函数取到最大值时的参数值作为估计值,似然函数可以写做

相乘因为它们之间是独立同分布的。由于有连乘运算,通常对似然函数取对数计算简便,即对数似然函数。

最大似然估计问题可以写成

这是一个关于的函数,求解这个优化问题通常对求导,得到导数为0的极值点。该函数取得最大值是对应的的取值就是我们估计的模型参数。

给定观测到的样本数据,一个新的值发生的概率是

求出参数值不是最终目的,最终目的是去预测新事件基于这个参数下发生的概率。

Note: 注意有一个约等于,因为他进行了一个近似的替换,将theta替换成了估计的值,便于计算。that is, the next sample is anticipated to be distributed with the estimated parameters θ ? ML .

扔硬币的伯努利实验示例

以扔硬币的伯努利实验为例子,N次实验的结果服从二项分布,参数为P,即每次实验事件发生的概率,不妨设为是得到正面的概率。为了估计P,采用最大似然估计,似然函数可以写作

其中表示实验结果为i的次数。下面求似然函数的极值点,有

得到参数p的最大似然估计值为

可以看出二项分布中每次事件发的概率p就等于做N次独立重复随机试验中事件发生的概率。

如果我们做20次实验,出现正面12次,反面8次,那么根据最大似然估计得到参数值p为12/20 = 0.6。

皮皮blog

最大后验估计MAP

最大后验估计与最大似然估计相似,不同点在于估计的函数中允许加入一个先验,也就是说此时不是要求似然函数最大,而是要求由贝叶斯公式计算出的整个后验概率最大,即

Note: 这里P(X)与参数无关,因此等价于要使分子最大。

通过加上这个先验分布项,我们可以编码额外的信息,并且可以避免参数的过拟合问题。

与最大似然估计相比,现在需要多加上一个先验分布概率的对数。在实际应用中,这个先验可以用来描述人们已经知道或者接受的普遍规律。例如在扔硬币的试验中,每次抛出正面发生的概率应该服从一个概率分布,这个概率在0.5处取得最大值,这个分布就是先验分布。先验分布的参数我们称为超参数(hyperparameter)即,我们认为,theta也是服从一个先验分布的:alpha是他的超参数

同样的道理,当上述后验概率取得最大值时,我们就得到根据MAP估计出的参数值。

给定观测到的样本数据,一个新的值发生的概率是

Note: 这里积分第一项与theta无关(使用的是MAP值),所以第二项积分为1(也就是后验概率不随新来的数据变化,为1?)。

扔硬币的伯努利实验示例

我们期望先验概率分布在0.5处取得最大值,我们可以选用Beta分布(lz:实际上选择beta分布的原因是beta分布和二项分布是共轭分布)即

其中Beta函数展开是

当x为正整数时

Beta分布的随机变量范围是[0,1],所以可以生成normalized probability values。下图给出了不同参数情况下的Beta分布的概率密度函数

我们取,这样先验分布在0.5处取得最大值(观察上面的图,因为我们先验认为p约等于0.5,因此超参数a和b是相等的,我们这里选择等于5)。

现在我们来求解MAP估计函数的极值点,同样对p求导数,得到参数p的的最大后验估计值为

后面两项是对log(p(p|alpha,beta))的求导

和最大似然估计ML的结果对比可以发现结果中多了,我们称这两者为pseudo
count伪计数,这两项的作用是使总概率p向0.5拉近,因为我们的先验认为就是约等于0.5的。这样的pseudo-counts就是先验在起作用,并且超参数越大,为了改变先验分布传递的belief所需要的观察值就越多,此时对应的Beta函数越聚集,紧缩在其最大值两侧。

如果我们做20次实验,出现正面12次,反面8次,那么,根据MAP估计出来的参数p为16/28 = 0.571,小于最大似然估计得到的值0.6,这也显示了“硬币一般是两面均匀的”这一先验对参数估计的影响。

[主题模型TopicModel:LDA中的数学模型]

皮皮blog

贝叶斯估计

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

贝叶斯公式

现在不是要求后验概率最大,这样就需要求,即观察到的evidence的概率,由全概率公式展开可得

当新的数据被观察到时,后验概率可以自动随之调整。但是通常这个全概率的求法是贝叶斯估计比较有技巧性的地方。

用贝叶斯估计来做预测

如果我们想求一个新值的概率,可以由下面公式来计算。

此时第二项因子在上的积分不再等于1,这就是和MLE及MAP很大的不同点。

扔硬币的伯努利实验示例

跟上面极大后验概率例子一样,N次伯努利实验,参数p(即正面的概率)的先验分布是参数为(5,5)的beta分布,然后接下来,我们根据参数p的先验分布和N次伯努利实验结果来求p的后验分布。我们假设先验分布为Beta分布,但是构造贝叶斯估计时,不是要求用后验最大时的参数来近似作为参数值,而是求满足Beta分布的参数p的期望,也就是直接写出参数的分布再来求分布的期望,有

Note:

1 C是所有实验结果的集合Ci=1或者0。

2

3 这里用到了公式

4 推导也可参考[主题模型TopicModel:LDA中的数学模型:Beta-Binomial 共轭部分]

根据结果可以知道,根据贝叶斯估计,参数p服从一个新的Beta分布。回忆一下,我们为p选取的先验分布是Beta分布,然后以p为参数的二项分布用贝叶斯估计得到的后验概率仍然服从Beta分布,由此我们说二项分布和Beta分布是共轭分布。当T为二维的情形可以对Beta分布来应用;T为多维的情形可以对狄利克雷分布应用。

根据Beta分布的期望和方差计算公式,我们有

可以看出此时估计的p的期望和MLE ,MAP中得到的估计值都不同,此时如果仍然是做20次实验,12次正面,8次反面,那么我们根据贝叶斯估计得到的p满足参数为12+5和8+5的Beta分布,其均值和方差分别是17/30=0.567, 17*13/(31*30^2)=0.0079。可以看到此时求出的p的期望比MLE和MAP得到的估计值都小,更加接近0.5。

皮皮blog

MLE,MAP和贝叶斯估计对参数估计的比较

综上所述我们可以可视化MLE,MAP和贝叶斯估计对参数的估计结果如下

lz:从MLE到MAP再到贝叶斯估计,对参数的表示越来越精确(由易到难,估计的value也越来越perfect),得到的参数估计结果也越来越接近0.5这个先验概率,越来越能够反映基于样本的真实参数情况。

Why the MLE doesn’t work well?

While MLE is guaranteed to maximizes the probability of an observed data, we areactually interested in finding estimators that perform well on new data. A serious problemarises from this perspective because the MLE assigns a zero probability to elements
thathave not been observed in the corpus. This means it will assign a zero probability to anysequence containing a previously unseen element.

from: http://blog.csdn.net/pipisorry/article/details/51482120

ref: Gregor Heinrich: Parameter estimation for text analysis*

参数估计(极大似然估计,极大后验概率估计,贝叶斯估计)*

文本语言模型的参数估计-最大似然估计、MAP及贝叶斯估计

文本分析中的参数估计,以LDA为例,英文版:Heinrich-GibbsLDA.pdf

Reading Note : Parameter estimation for text analysis 暨LDA学习小结

时间: 05-25

文本分析的参数估计方法的相关文章

基于文本分析的参数估计

目录 0基于文本分析的参数估计... 1 1     参数估计方法... 1 1.1最大似然估计MLE. 2 1.2最大后验概率... 3 1.3贝叶斯推理... 4 2     共轭分布... 7 2.1 随机生成过程及共轭分布... 7 2.2 Multinomial分布和 Dirichlet分布... 8 3 unigram model10 3 LDA隐含狄利克雷分布... 11 3.1   Gibbs Sampling的流程... 13 3.2   LDA的联合分布... 14 3.3

R软件中 文本分析安装包 Rjava 和 Rwordseg 傻瓜式安装方法四部曲

这两天,由于要做一个文本分析的内容,所以搜索了一天R语言中的可以做文本分析的加载包,但是在安装包的过程,真是被虐千百遍,总是安装不成功.特此专门写一篇博文,把整个心塞史畅快的释放一下. --------------------------------------------------------------------------------回归正题,华丽丽的分割线-----------------------------------------------------------------

机器学习中的参数估计方法

原文:https://blog.csdn.net/yt71656/article/details/42585873 前几天上的机器学习课上,老师讲到了参数估计的三种方法:ML,MAP和Bayesian  estimation.课后,又查了一些相关资料,以及老师推荐的LDA方面的论文<Parameter estimation for text analysis>.本文主要介绍文本分析的三类参数估计方法-最大似然估计MLE.最大后验概率估计MAP及贝叶斯估计,以及三者之间的区别. 1.最大似然估计

PHP抓取及分析网页的方法详解

本文实例讲述了PHP抓取及分析网页的方法.分享给大家供大家参考,具体如下: 抓取和分析一个文件是非常简单的事.这个教程将通过一个例子带领你一步一步地去实现它.让我们开始吧! 首先,我首必须决定我们将抓取的URL地址.可以通过在脚本中设定或通过$QUERY_STRING传递.为了简单起见,让我们将变量直接设在脚本中. ? 1 2 3 <?php $url = 'http://www.php.net'; ?> 第二步,我们抓取指定文件,并且通过file()函数将它存在一个数组里. ? 1 2 3

《人民的名义》---简单的文本分析

我们都知道进行自然语言处理的第一步就是分词,下面使用jieba模块对最近比较热的电视剧<人民的名义>进行分词,并对它进行一些简单的文本分析. 一.jieba模块中常用的方法说明(github): 1.分词: jieba.cut 方法接受三个输入参数: 需要分词的字符串:cut_all 参数用来控制是否采用全模式:HMM 参数用来控制是否使用 HMM 模型 jieba.cut_for_search 方法接受两个参数:需要分词的字符串:是否使用 HMM 模型.该方法适合用于搜索引擎构建倒排索引的分

linux基础--awk文本分析工具详解

简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理. awk有3个不同版本: awk.nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本. awk其名称得自于它的创始人 Alfred Aho .Peter Weinberger 和 Brian Kernighan 姓氏的首个字母.实际上 AWK

文本分析与检索

主要内容: 1.文本表示与特征提取: 2.隐语义分析LSA和Latent Dirichlet Allocation(LDA) 3.检索模型:Boolean模型.向量模型.概率模型 1.文本表示与特征提取 文本中抽取出的特征词进行量化来表示文本信息: 利用分词工具:极易中文分词:je-analysis-1.5.3,庖丁分词:paoding-analyzer.jar, IKAnalyzer3.0, imdict-chinese-analyzer, ictclas4j 目前通常采用向量空间模型来描述文

Solr:文本分析

文本分析时搜索引擎的核心工作之一,对文本包含许多处理步骤,比如:分词.大写转小写.词干化.同义词转化等.简单的说,文本分析就说将一个文本字段的值转为一个一个的token,然后被保存到Lucene的索引结构中被将来搜索用.当然,文本分析不仅在建立索引时有用,在查询时对对所输入的查询串也一样可以进行文本分析.在 Solr Schema设计 中我们介绍了许多Solr中的字段类型,其中最重要的是solr.TextField,这个类型可以进行分析器配置来进行文本分析. 接下来我们先来说说什么是分析器. 分

2016年,文本分析、情感分析和社交分析的10大趋势

文本分析.情感分析和社交分析帮助你在一定规模上转化成客户.病人.公众以及市场的“声音”.这项技术目前大量地应用于一系列的工业产品中,从医疗健康到金融.媒体.甚至客户市场.它们从线上.社交网络.企业数据源中提取商业洞察力. 它从文本中.音频中.图像中还有网络连接中提取洞察力,它可真是个有用的东西! 目前分析技术发展得还是相当不错的,尽管在某些领域,例如数字分析和市场研究有些稍稍落后.但是甚至是在例如“客户体验.社群聆听.用户交互”方面,还是有很多发展空间.这个快速发展的市场空间无论对于新加入的玩家