使用离散预测为朴素贝叶斯分类器实现ROC曲线

时间:2019-01-19 14:32:22

标签: python naivebayes roc

我需要实现朴素贝叶斯分类器并绘制ROC曲线

1) only 2 classes(Trousers and pullovers) out of 10 classes of the [FMNIST][1] dataset and then  

2) second for all the ten classes without using scikit library and just basic matplotlib, pandas libraries from scratch. 

我在两种情况下都成功实现了朴素贝叶斯分类器,但由于需要设置阈值,因此我无法理解如何实现ROC曲线。朴素贝叶斯分类器仅使用似然性并且在获得离散分布的后验之前,特征值是RGB(0-255)值,该值使用127的阈值进行二值化(每个测试样本的特征数为28 * 28 = 784)。对于10个类别,我想我需要通过将其中一个类别作为正类别并逐一消除负数来绘制10条曲线。

我的分类器基于所有类别的后验概率的最大值来预测测试样本的类别。但是我无法理解如何确定阈值以及如何绘制ROC曲线。我经历了一些stackoverflow和其他链接,但无法理解。请解释一下,因为我是机器学习的新手。

1 个答案:

答案 0 :(得分:1)

有点晚了,但是...

在二元情况下,不要将预测设为后验次数最大的类,只需将肯定情况下的后验概率保留下来,并将其与您的阈值进行比较。

例如,如果您的阈值为0.8,则1和0分别表示正数和负数;那么如果P(Y = 1 | X)> = 0.8,则您的预测为1,否则为0。