在朴素贝叶斯(Naive Bayes)中,当我们在测试集中有未知单词时,为什么还要打扰Laplace平滑?


27

我今天正在阅读朴素贝叶斯分类法。我在Parameter Estimation的标题下加上了1 smoothing进行了阅读

令指代一个类(例如正或负),而令指代一个标记或单词。cw

用于最大似然估计是P(w|c)

count(w,c)count(c)=counts w in class ccounts of words in class c.

这种估计可能会产生问题,因为它会使单词未知的文档的概率为。解决此问题的常用方法是使用拉普拉斯平滑。P(w|c)0

令V为训练集中的单词集合,向单词集合添加一个新元素(未知)。UNK

定义

P(w|c)=count(w,c)+1count(c)+|V|+1,

其中表示词汇表(训练集中的单词)。V

特别是,任何未知单词的概率都为

1count(c)+|V|+1.

我的问题是:为什么我们要完全不理会Laplace平滑处理?如果我们在测试集中遇到的这些未知单词的概率显然几乎为零,即,将它们包括在模型中有什么意义?为什么不忽略它们并删除它们呢? 1count(c)+|V|+1


3
如果您不这样做,那么您遇到的包含先前未见过的单词的任何语句将具有。这意味着不可能的事情已经过去了。这意味着您的模型非常不合适。同样在适当的贝叶斯模型中,这永远不会发生,因为未知单词的概率将具有由先验给出的分子(可能不是1)。所以我不知道为什么这需要花哨的名字“拉普拉斯平滑”。p=0
猜想

1
阅读的文字是什么?
wordforthewise

Answers:


17

您始终需要这种“故障安全”概率。

要了解为什么要考虑最坏的情况,即训练样本中的单词都没有出现在测试句子中。在这种情况下,根据您的模型,我们可以得出以下结论:该句子是不可能的,但显然存在,造成了矛盾。

另一个极端的例子是测试语句“亚历克斯遇见史蒂夫”。其中“ met”在训练样本中出现过几次,但“ Alex”和“ Steve”却没有。您的模型将得出以下结论:这很可能是不正确的。


我讨厌听起来像个笨蛋,但是您介意吗?删除“ Alex”和“ Steve”如何改变陈述发生的可能性?
Matt O'Brien 2014年

2
如果我们假设词P(Alex)P(Steve)P(met)<< P(met)的独立性
Sid 2014年

1
我们可以在训练数据集上训练模型时建立词汇表,那么为什么不对测试数据集进行预测时只删除词汇表中未出现的所有新单词呢?
鳄梨

15

假设您已经对“朴素贝叶斯分类器”进行了2类“火腿”和“垃圾邮件”的训练(即,它对电子邮件进行了分类)。为了简单起见,我们假定先验概率为50/50。

现在,假设您有一封电子邮件,分类器将其评价为“火腿”,例如和(w1,w2,...,wn)

P(Ham|w1,w2,...wn)=.90
P(Spam|w1,w2,..wn)=.10

到目前为止,一切都很好。

现在,假设您还有另一封电子邮件,与上面的电子邮件完全相同,只不过其中有一个单词没有包含在词汇表中。因此,由于该单词的计数为0,所以(w1,w2,...,wn,wn+1)

P(Ham|wn+1)=P(Spam|wn+1)=0

突然,并且

P(Ham|w1,w2,...wn,wn+1)=P(Ham|w1,w2,...wn)P(Ham|wn+1)=0
P(Spam|w1,w2,..wn,wn+1)=P(Spam|w1,w2,...wn)P(Spam|wn+1)=0

尽管第一个电子邮件被严格地归为一类,但是由于该最后一个单词的概率为零,因此该第二个电子邮件的分类可能有所不同。

拉普拉斯平滑通过为两个类赋予最后一个词较小的非零概率来解决此问题,因此后验概率不会突然降至零。


为什么我们要保留一个根本不存在的单词?为什么不将其删除?
鳄梨

4
如果您的分类者将一封电子邮件评价为很可能是火腿,则p(ham | w1,...,wn)为0.9,而不是p(w1,...,wn | ham)
braaterAfrikaaner

5

如果您熟悉贝叶斯估计器,那么这个问题非常简单,因为它是贝叶斯估计器的直接结论。

在贝叶斯方法中,参数被认为是可以通过概率分布(或先验分布)描述其变化的数量。

因此,如果我们将拾取过程视为多项式分布,则可以通过几个步骤解决问题。

首先,定义

m=|V|,n=ni

如果我们假设的先验分布是均匀分布,则可以将其条件概率分布计算为pi

p(p1,p2,...,pm|n1,n2,...,nm)=Γ(n+m)i=1mΓ(ni+1)i=1mpini

我们可以发现它实际上是Dirichlet分布,对期望是pi

E[pi]=ni+1n+m

的自然估计是后验分布的平均值。因此,我们可以给出的贝叶斯估计量:pipi

p^i=E[pi]

您可以看到我们得出的结论与拉普拉斯平滑法相同。


4

不理会这些话是处理它的另一种方法。它对应于对所有缺失变量进行平均(积分)。因此结果是不同的。怎么样?

假定此处使用的符号: ,其中是词汇表中的标记,是文档。

P(C|d)=argmaxCip(ti|C)P(C)P(d)argmaxCip(ti|C)P(C)
tid

假设没有出现令牌。而不是使用拉普拉斯平滑(通过在多项式贝叶斯上施加Dirichlet先验)来得出,它对应于说:我对未知令牌的所有可能性(无论是否存在)进行加权投票。tktk

P(C|d)argmaxCtkip(ti|C)P(C)=argmaxCP(C)ikp(ti|C)tkp(tk|C)=argmaxCP(C)ikp(ti|C)

但实际上,人们更喜欢平滑方法。不用忽略这些标记,而是给它们分配一个低概率,就像在思考:如果我有未知的标记,那是不太可能是我原本以为的那种文档。


2

您想知道为什么我们要在Naive Bayes分类器中根本不考虑平滑问题(当我们可以丢弃未知特征时)。

您的问题的答案是:并非所有单词在所有课程中都必须是未知的。

假设存在具有特征ABC的两个MN类,如下所示:

M:A = 3,B = 1,C = 0

(在M类中,A出现3次,B仅出现一次)

N:A = 0,B = 1,C = 3

(在N类中,C出现3次,B仅出现一次)

让我们看看当您丢弃出现次的功能时会发生什么。

A)扔掉在任何班级出现零次的功能

如果由于要素AC任何类中出现次而将其丢弃,则仅留下要素B来对文档进行分类。

丢失该信息是一件坏事,如下所示!

如果显示以下测试文档:

B = 1,C = 3

(它包含B一次和C三次)

现在,由于您已经放弃了功能AB,因此您将无法确定以上文档属于M类还是N类。

因此,丢失任何功能信息是一件坏事!

B)扔掉所有类中出现零次的功能

是否可以通过丢弃所有类中出现次的那些特征来解决此问题?

不,因为那样会产生自己的问题!

以下测试文档说明了如果执行此操作将会发生的情况:

A = 3,B = 1,C = 1

MN的概率都将变为(因为我们没有丢弃N类中A的零概率和M类中C的零概率)。

C)不要扔掉任何东西-改用平滑

平滑处理可以使您对上述两个文档进行正确分类,因为:

  1. 您不会在可获得此类信息的班级中丢失计数信息,并且
  2. 您不必面对零计数。

朴素贝叶斯分类器在实践中

NLTK中的朴素贝叶斯分类器过去常常丢弃在任何类中计数都为零的特征。

过去,使用硬EM程序进行训练(使分类器从很少的训练数据中启动)时,其性能会很差。


2
@ Aiaioo Labs您没有意识到他指的是根本没有出现在训练集中的单词,例如,您指的是说如果D出现了,问题不在于拉普拉斯平滑计算中的问题。训练集而不是测试集。对来自TEST集合的未知单词使用拉普拉斯平滑会使概率偏向具有最少令牌数量的类,因为0 + 1/2 + 3大于0 + 1/3 + 3(如果其中一个类具有3个令牌,另一个有2个)。...

2
如果将足够多的未知词平滑到方程中,则实际上可以将正确的分类变成错误的分类。拉普拉斯平滑法适合训练集计算,但不利于测试集分析。还要想象一下,您有一个包含所有未知单词的测试集,应该立即将其分类为概率最高的类别,但实际上,它可以而且通常不会这样分类,并且通常被分类为金额最低的类别。令牌。

@DrakeThatcher,非常同意您的看法,是的,如果我们不删除词汇中没有的单词,那么预测的proba将会偏向最少单词的类别。
鳄梨

1

在研究朴素贝叶斯时,我也遇到了同样的问题。

根据我的说法,每当遇到训练中没有遇到的测试示例时,后验概率将变为0。

因此,加上1,即使我们从不训练特定要素/类,则后验概率永远不会为0。


1

马特,您是对的,您提出了一个很好的观点-是的,坦率地说,拉普拉斯平滑法是胡说八道!仅仅简单地丢弃这些特征是一种有效的方法,尤其是在分母也很小的情况下-根本没有足够的证据支持概率估计。

我强烈反对通过使用任意调整来解决任何问题。这里的问题是零,“解决方案”是“仅将一些较小的值添加到零,因此不再是零-魔术,问题不再存在”。当然那是完全任意的。

您建议从一开始就选择更好的功能是一种不太随意的方法,IME可以提高性能。此外,根据我的经验,模型将拉普拉斯平滑与朴素贝叶斯结合使用会使粒度问题变得更糟,即粒度输出趋于接近1.0或0.0的问题(如果特征数量是无限的,那么每个分数将是1.0或0.0 -这是独立性假设的结果)。

现在已经存在用于概率估计的替代技术(最大似然+拉普拉斯平滑法除外),但已有大量文献记载。实际上,有一个称为归纳逻辑和推理过程的整个领域,都在使用信息论中的许多工具。

我们在实践中使用的是最小交叉熵更新,它是杰弗里(Jeffrey)更新的扩展,其中我们定义了概率空间的凸区域,该区域与证据一致,即该区域中的一个点表示最大似然估计在范围内。从这一点上预期的绝对偏差。

这具有一个很好的特性,即随着数据点数量的减少,估计和平地平滑地接近先验值,因此它们在贝叶斯计算中的作用为零。另一方面,拉普拉斯(Laplace)平滑使每个估计都接近最大熵点,该点可能不是先验的,因此计算中的效果不会为空,只会增加噪声。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.