从混淆矩阵来看,平均精度得分太高



我正在开发一个基于不平衡数据集(二元分类)的机器学习scikit-learn模型。看看混淆矩阵和F1分数,我期望一个较低的平均精度分数,但我几乎得到一个完美的分数,我不知道为什么。这是我得到的输出:

测试集上的混淆矩阵:

[[6792  199]
[   0  173]]

F1分数:0.63

Test AVG precision score:0.99

我给出了scikit-learn概率的平均精度分数函数,这是包中说要使用的。我想知道问题出在哪里。

混淆矩阵和f1分数基于硬预测,这在sklearn中是通过在0.5的概率阈值下切割预测产生的(对于二元分类,并假设分类器确实是概率性的开始[因此不是SVM示例])。相比之下,平均精度是使用所有可能的概率阈值计算的;可读作精密度-召回率曲线下的面积。

所以高average_precision_score和低f1_score表明你的模型在一些阈值下做得非常好,而不是0.5。

最新更新