自然语言处理里和贝叶斯模型里出现的laplace光滑什么意思?有什么用?
1个回答
拉普拉斯光滑是用来对分类变量的出现频率进行光滑修正的一个手段。
比如有一句话“我学习机器学习”,一共七个字。
“我”出现了一次。频率为$$f(我)=\frac{1}{7}$$
“学”出现了两次。频率为$$f(学)=\frac{2}{7}$$
拉普拉斯光滑的公式为
$$g(x)=\frac{n_x+\alpha}{l+\alpha c}$$
其中$n_x$是单词$x$出现的次数,$l$是句子的长度,$c$是句子中不同词汇的个数,$\alpha$是拉普拉斯光滑的光滑系数,这个是自行设定的。
上面的句子里一共七个字,五个不同的字。假设我们选定$\alpha=1$:
$$g_1(我)=\frac{1+1}{7+1\times 5}=\frac{2}{12}=\frac{1}{6}$$
$$g_1(学)=\frac{2+1}{7+1\times 5}=\frac{3}{12}=\frac{1}{4}$$
假设我们选定$\alpha=2$:
$$g_2(我)=\frac{1+2}{7+2\times 5}=\frac{3}{17}$$
$$g_2(学)=\frac{2+2}{7+2\times 5}=\frac{4}{17}$$
$\alpha$越大,得到的结果越接近于均匀分布。
拉普拉斯光滑解决一些0概率问题,即一个样本虽然不出现,但是我们不能认为它的概率就一定是0。在贝叶斯模型中,拉普拉斯光滑很常见。
此外,拉普拉斯光滑不只是在自然语言处理的文本、词汇数据。它使用用所有的多元categorical的数据。
拉普拉斯光滑也有一些变种的方法,具体可以参考维基百科
相关主题
置信网络和贝叶斯网络是一回事吗?
1回答
朴素贝叶斯中的朴素是什么意思?
1回答
如何用python实现贝叶斯网络优化lightgbm超参数?
2回答
sklearn朴素贝叶斯分类里GaussianNB和BernoulliNB的区别?
2回答
朴素贝叶斯可以用来做回归吗?
2回答
我们谢绝在回答前讲“生动”的故事。
我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。
我们谢绝答非所问。
我们谢绝自己不会、硬要回答。
我们感激每一个用户在编写答案时的努力与付出!