为什么在GaussianNB [scikit-learn]中使用对数概率估计?

T.S*_*.S. 12 gaussian scikit-learn

我目前正在使用scikit-learn的GaussianNB包.

我注意到我可以选择以几种不同的方式返回分类结果.返回分类的一种方法是使用predict_log_proba方法.

为什么我会选择使用predict_log_proba而不是predict_proba与预测?

Mar*_*hen 11

  • 预测只为每个例子提供课程
  • predict_proba给出了每个类的概率,而预测只是取最大概率的类
  • predict_log_proba给出了概率的对数,这通常更容易,因为概率可以变得非常非常小


Fre*_*Foo 8

在使用概率进行计算时,在日志空间而不是线性空间中这样做是很常见的,因为概率通常需要相乘,导致它们变得非常小并且会受到舍入误差的影响.此外,根据对数概率定义或容易计算诸如KL散度之类的一些量(注意log(P/Q)= log(P)-log(Q)).

最后,出于稳定性和速度的原因,Naive Bayes分类器通常在logspace中工作,因此首先计算以后exp(logP)logP回来是浪费的.