Pra*_*vel 23 python floating-point numerical-stability
我有一个用Python编程的贝叶斯分类器,问题是当我乘以特征概率时,我得到非常小的浮点值,如2.5e-320或类似的东西,突然变成0.0.0.0显然对我没用,因为我必须根据哪个类返回MAX值(更大的值)找到"最佳"类.
处理这个问题的最佳方法是什么?我想找到数字的指数部分(-320),如果它太低,则将该值乘以1e20或某个值.但也许有更好的方法?
看一下stdlib 中的Decimal。
from decimal import Decimal, getcontext
getcontext().prec = 320
Decimal(1) / Decimal(7)
Run Code Online (Sandbox Code Playgroud)
我不会在这里发布结果,因为它很长。