我有一个用 Python 编写的贝叶斯分类器,问题是当我将特征概率相乘时,我得到非常小的浮点值,例如 2.5e-320 或类似的值,然后它突然变成 0.0。 0.0 显然对我没有用,因为我必须根据哪个类返回 MAX 值(更大的值)来找到“最佳”类。
解决这个问题的最佳方法是什么?我想过找到数字的指数部分(-320),如果它太低,则将该值乘以 1e20 或类似的值。但也许有更好的方法?
最佳答案
您描述的是朴素贝叶斯分类器的标准问题。您可以使用它搜索下溢以找到答案。或见 here .
简短的回答是用对数表示所有这些是标准的。因此,不要将概率相乘,而是将它们的对数相加。
您可能还想查看其他分类算法。
关于python - 在 Python 中,小 float 趋于零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3704570/