【问题标题】:Naive Bayes Classifier Mathematics - Lack of Precision in Computing朴素贝叶斯分类器数学 - 计算精度不足
【发布时间】:2012-04-09 06:33:18
【问题描述】:

我从数学的角度与某人谈论朴素贝叶斯分类器。我们讨论了如果将大量概率相乘,最终原始类型(如浮点数或双精度数)将无法存储结果值,而只会变成零。

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

与我交谈的人说,“解决方法”是记录概率,然后像这样将它们加在一起。

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

我理解采用概率对数的好处,它增加了数字的大小,因此它不会“脱落”,但是在那之后你怎么能把它们加在一起呢?是不是这样,当您运行朴素贝叶斯时,只要您对所有分类“桶”始终如一地执行它,您仍然可以在一天结束时找到最大的一个?

感谢任何解释。谢谢,

mj

【问题讨论】:

  • 作为一般规则,每当您最终将数字相乘时,最好将它们的对数相加。如果数字读取 1 + x 且 x 接近于零(这似乎不是你的情况,除非你的概率分布非常接近均匀),那么你可能需要一个专门的 log(1 + x) 例程来处理这种情况。

标签: math data-mining


【解决方案1】:

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

【讨论】:

  • 天哪。这就是我不记得任何对数规则的结果。谢谢达菲莫。
猜你喜欢
  • 2014-09-18
  • 2017-01-10
  • 2019-04-01
  • 2016-10-05
  • 2018-11-26
  • 2015-10-09
  • 2015-08-27
  • 2018-02-06
相关资源
最近更新 更多