返回sklearn的高斯朴素贝叶斯的原始概率

时间:2018-10-31 11:46:40

标签: python scikit-learn naivebayes outliers

我正在使用Scikit-Learn的GaussianNB进行监督分类。当使用方法“ predict_proba”时,概率总和始终等于1。

我想返回的是拟合的高斯分布的实际值,因为我的数据集包含许多离群值。如果我有3个已确定的类别,我希望模型告诉我:“类别A为10%,类别B为0.5%,类别C为4%”。换句话说,它更有可能是异常值。

sklearn是否也返回此结果?我应该基于均值和标准差进行数学运算吗?

1 个答案:

答案 0 :(得分:0)

我最终使用的解决方案如下:

gaussian_model = naive_bayes.GaussianNB()
jll = gaussian_model._joint_log_likelihood(X) 
raw_proba = np.exp(jll)

raw_proba不在0到1之间,但由于我只想对结果进行排名,因此我并不真正在意数字本身。