解释高精度和非常低的召回分数

数据挖掘 scikit-学习 决策树
2022-02-18 10:36:29

我在一个非常不平衡的数据集上训练模型,两个类别的比例为 80:20。数据集有数千行,我使用

DeccisionTreeClassifier(class_weight='balanced')

我在测试集上得到的准确率和召回率非常奇怪

Test set precision : 0.987767
Test set recall : 0.01432

我无法解释结果。这告诉我关于我的分类器的什么信息?

1个回答

由于“非常不平衡的数据集”导致的所有问题。请看recallprecision的定义。根据您的分数,我可以说您是一小部分标记为正数的值,它们被正确分类(precision=TPTP+FP)。但是您有一组非常大的值被标记为负值,它们会影响recall=TPTP+FN, 这样TP在精度上保持不变,但你有很多FN导致召回值较小的值。

至少您应该对数据集重新采样以获得更好的结果。