Laplace Smoothing

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

拉普拉斯的理论支撑
  为了解决零概率的问题,法国数学家拉普拉斯最早提出用加1的方法估计没有出现过的现象的概率,所以加法平滑也叫做拉普拉斯平滑。
  假定训练样本很大时,每个分量x的计数加1造成的估计概率变化可以忽略不计,但可以方便有效的避免零概率问题。

说点接地气的,在机器学习中常常会碰到对从未发生过的事件的预测,拉普拉斯的方法就可以发挥作用。比如下面是一些邮件的数据,左边两列是邮件中的是否包含某些关键字,第三列是该邮件是否为垃圾邮件,最后一列是这样的邮件有多少封:

test

根据上面的数据容易得到,包含“发票”和“微信”且是垃圾邮件(表中第八行)的概率为(机器学习中一般是计算条件概率,这里为了解释方便,只去计算了如下概率):

仔细观察会发现,只包含“微信”的情况是没有数据的(表中第五、六行),此时就可用拉普拉斯的办法,给每一项都加上1(“太阳升起”问题中只有两种状态,这里有八种状态,在思想实验中,可以给每种状态都预先加上1,表现出来的结果就是在表格中给每一项都加上1):

这样就可以估计只包含“微信”且是垃圾邮件(表中第六行)的概率为:

这种方法在机器学习中也叫拉普拉斯平滑


You'll only receive email when they publish something new.

More from ML
All posts