我正在查看大数据类(class)的幻灯片。他们说高维朴素贝叶斯容易出现数值下溢和未观察到的事件——所以你应该在计算朴素贝叶斯时取概率的对数。这些幻灯片在说什么?我认为数字下溢会因为变量类型(例如转换为 int 的 big )而失去精度。但这似乎不是这些幻灯片中该术语的含义。数字下溢和未观察到的事件是什么意思?在朴素贝叶斯中,概率的对数如何避免这些事情?
最佳答案
您的计算机只有有限的精度。因此,例如,在一台以无限精度计算事物的理想计算机上,这个 Python 小程序永远不会停止,它只会让打印的数字越来越接近 0。
x = 1.0
while x != 0:
x = x * .5
print x
但是由于计算机将数字存储在固定数量的位中,因此它只能表示这么多数字,最终它将乘积四舍五入为 0 并退出循环。
当您有许多特征时,朴素贝叶斯中的计算就是这样发生的。您将许多小于 1 的概率相乘,最终由于机器精度问题,您可以达到 0。
关于machine-learning - 为什么高维贝叶斯分类问题会受到数值下溢的影响?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19371910/