朴素贝叶斯分类器数学 - 计算精度不足

mj_*_*mj_ 0 math data-mining

从数学的角度来看,我正和某人谈论朴素贝叶斯分类器.我们讨论的是如果将大量概率相乘,最终原始类型如float或double将无法存储结果值,它只会变为零.

P(x1)*P(x2)*... =对于计算机来说太小的数字= 0

我采访过的人说,"解决方法"是记录概率,然后将它们加在一起.

log(P(x1))+ log(P(x2))+ ...

我理解了记录概率的优点,它增加了数字的大小,使它不会"脱落",但你怎么能在那之后将它们加在一起呢?是不是当你运行朴素贝叶斯时,只要你对所有分类"桶"一直这样做,你仍然可以在一天结束时找到最好的那个?

任何解释都表示赞赏.谢谢,

MJ

duf*_*ymo 5

因为log(a*b) = log(a) + log(b).它是对数的属性.