我目前正在实现一个高斯朴素贝叶斯分类器。当然,如果我按
argmaxCiP(Ci)P(D|Ci),
那么概率会变得非常小。所以我想使用对数概率。我看到了三种可能性:
argmaxCiP(Ci)logP(D|Ci),
argmaxCilogP(Ci)logP(D|Ci),
argmaxCilogP(Ci)+logP(D|Ci),
其中哪一个是正确的方法?从计算的角度来看,第二个是正确的,因为对于其他人,我得到的是负值,但从数学的角度来看,第三个是正确的,原因如下:
P(Ci|D)=P(Ci)P(D|Ci)P(D)=P(Ci)P(D|Ci)
logP(Ci|D)=log[P(Ci)P(D|Ci)]=logP(Ci)+logP(D|Ci)
P(D) 可以被删除,因为它不依赖于类。无论如何,对于所有变体,我得到的值都在 [0,1] 之外,但我认为这没关系,因为我正在计算概率密度(来自高斯分布)而不是概率。
我有第二个问题。我也有兴趣了解每对类的每个功能的重要性。如何根据高斯朴素贝叶斯计算?我需要这个,因为我想可视化每对类的 10 个最重要的特征。