我正在查看大数据课程的幻灯片。他们说高维朴素贝叶斯容易出现数值下溢和未观察到的事件——所以你应该在计算朴素贝叶斯时记录概率。这些幻灯片在说什么?我认为数字下溢由于变量类型而失去精度(例如,大转换为 int)。但这似乎不是这些幻灯片中该术语的含义。数字下溢和未观察到的事件是什么意思?在朴素贝叶斯中获取概率的对数如何避免这些事情?
问问题
1166 次
3 回答
3
您的计算机只有有限的精度。例如,在一台可以无限精确计算事物的理想计算机上,这个 Python 小程序永远不会停止,它只会让打印的数字越来越接近 0。
x = 1.0
while x != 0:
x = x * .5
print x
但是由于计算机以固定数量的位存储数字,因此它可以表示的数字只有这么多,最终它将乘积舍入为 0 并退出循环。
当您有许多特征时,朴素贝叶斯的计算会像这样发生。您将许多小于 1 的概率相乘,由于机器精度问题,最终您可以达到 0。
于 2013-10-15T01:40:32.440 回答
1
顺便说一句,获取日志有帮助的一个原因是它将产品转换为总和。
于 2013-10-17T11:34:49.527 回答