您的位置:首页 > 其它

Laplace(拉普拉斯)平滑

2017-05-17 16:24 330 查看
平滑技术

平滑技术是为了解决训练集的数据稀松问题。

  零概率问题,就是在计算实例的概率时,如果某个量x,在观察样本库(训练集)中没有出现过,会导致整个实例的概率结果是0。在文本分类的问题中,当一个词语没有在训练样本中出现,该词语调概率为0,使用连乘计算文本出现概率时也为0。这是不合理的,不能因为一个事件没有观察到就武断的认为该事件的概率是0。

  一般的m阶马尔科夫链转移概率是这样训练的:

  P(cm+1|c1c2...cm)=count(c1c2...cmcm+1)∑c(count(c1c2...cmc))(1.1)

  P(cn+1|c1c2...cn)=count′(c1c2...cncn+1)∑c(count′(c1c2...cnc))for n< m (1.2)

count(c1c2...cmc)是训练集中所有(m+1)-gram的数量,比如“abcd”,如果训练集中没有出现“ab@”这样的3-gram,那么P(@|ab)=0,这样所有的前缀为”ab@”的字符串的概率就都为0了,这样所有在训练集中未出现的n-gram,就会被判定为概率为0,“ab@password”和”ab@sdf#2(“的概率都为0,这是不合理的。解决办法就是对未出现的n-gram,给他们一个较小的概率,避免让其为0.

Laplace平滑

  为了解决零概率的问题,法国数学家拉普拉斯最早提出用加1的方法估计没有出现过的现象的概率,所以加法平滑也叫做拉普拉斯平滑。

  假定训练样本很大时,每个分量x的计数加1造成的估计概率变化可以忽略不计,但可以方便有效的避免零概率问题。

应用举例

  假设在文本分类中,有3个类,C1、C2、C3,在指定的训练样本中,某个词语K1,在各个类中观测计数分别为0,990,10,K1的概率为0,0.99,0.01,对这三个量使用拉普拉斯平滑的计算方法如下:

  1/1003 = 0.001,991/1003=0.988,11/1003=0.011

将公式1.1的每个count和公式1.2中的count’,都加一个正数a,这就避免了转移概率出现0的情况。

P(cm+1|c1c2...cm)=count(c1c2...cmcm+1)+a∑c(count(c1c2...cmc)+a)

  P(cn+1|c1c2...cn)=count′(c1c2...cncn+1)+a∑c(count′(c1c2...cnc)+a)for n< m

建议取a=0.01.

转载请注明出处。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息