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.
转载请注明出处。
平滑技术是为了解决训练集的数据稀松问题。
零概率问题,就是在计算实例的概率时,如果某个量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.
转载请注明出处。
相关文章推荐
- 拉普拉斯平滑处理 Laplace Smoothing
- 拉普拉斯平滑处理 Laplace Smoothing
- 拉普拉斯平滑处理 Laplace Smoothing
- 平滑处理--拉普拉斯(Laplace Smoothing)
- 拉普拉斯平滑处理 Laplace Smoothing
- 拉普拉斯平滑处理 Laplace Smoothing
- 朴素贝叶斯,Laplace平滑,多项式事件模型
- 对拉普拉斯平滑 的认识
- 神奇的拉普拉斯平滑(Laplacian Smoothing)及其在正则化上的应用~
- 机器学习笔记五 - 生成学习算法、高斯判别分析、朴素贝叶斯、拉普拉斯平滑
- 极大似然估计、拉普拉斯平滑定理、M-估计详解
- 全局拉普拉斯平滑之(1)Strucutre extraction from texture via relative total variation及稀疏矩阵求解
- OpenCV环境下Laplace(拉普拉斯)和Roberts基本边缘检测算子的实现代码
- 斯坦福第五章:拉普拉斯平滑处理
- 拉普拉斯平滑与相似性
- 分类-3-生成学习-3-朴素贝叶斯模型、laplace平滑、多元伯努利事件模型、多项式事件模型
- 机器学习算法~贝叶斯实现分类(包括python,解释,laplace平滑)
- 概率估计(极大似然估计、拉普拉斯平滑定理、M-估计的关系)
- 各种边缘检测算法效果对比-差分运算法、Sobel、Scharr、Laplace(拉普拉斯)、Roberts、Canny
- 贝叶斯网络、拉普拉斯平滑