machine-learning - 为什么高维贝叶斯分类问题会出现数值下溢?

标签 machine-learning

我正在审阅大数据类(class)的幻灯片。他们说高维朴素贝叶斯容易出现数值下溢和未观察到的事件 - 因此您应该在计算朴素贝叶斯时取概率的对数。这些幻灯片在谈论什么?我认为数字下溢会因为变量类型(例如,将 big 转换为 int)而失去精度。但这似乎不是这些幻灯片中该术语的含义。数字下溢和未观察到的事件是什么意思?在朴素贝叶斯中,取概率对数如何避免这些事情?

最佳答案

您的计算机的精度有限。例如,在一台以无限精度计算事物的理想计算机上,这个小 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/

相关文章:

python - 跨纪元的恒定准确性

python - 如何在 python-weka-wrapper 中为关联规则准备数据?

machine-learning - 将在 Google Cloud 中训练的模型导入到 Android 设备

tensorflow - 为什么在训练模型时我的 Keras 损失没有变化?

python - Keras LSTM 预测时间序列被压缩和移动

machine-learning - 在计算机视觉中使用形状描述符检测对象类别

python - Keras回归器: ValueError: continuous is not supported

python - 在 Google Quickdraw 数据集上应用机器学习算法

python - 缩进错误: Expected an indented block - Python machine learning cat/dog

python - 向 k 均值添加特征