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

标签 python scikit-learn naivebayes outliers

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

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

sklearn 也返回这个结果吗?我应该根据平均值和标准差进行数学计算吗?

最佳答案

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

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

raw_proba 不在 0 和 1 之间,但由于我只想对结果进行排名,所以我并不真正关心数字本身。

关于python - 返回 sklearn 高斯朴素贝叶斯的原始概率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53082610/

相关文章:

Python - 数组的最大值

python - 安装 scipy 和 scikit 时出现错误 1 ​​代码失败

python - 使用 scikit-learn 训练模型的更快方法

python - 具有变化的先验概率的文本数据集的多类 NaiveBayes 分类

arrays - 将CSV文件导入python,然后将其转换为numpy数组,然后将其输入sklearn算法

machine-learning - 如何计算精度和F1?

python - 你应该只为一行代码使用一个函数吗?

python - 具体什么时候函数作用域(框架)被删除?

python - 根据匹配条件返回数据帧的下一行

machine-learning - 文本数据上的 MiniBatchSparsePCA