有偏数据的精确性和召回率

2024-05-21 07:36:41 发布

您现在位置:Python中文网/ 问答频道 /正文

假设一个两类分类问题。一个类有超过95%的标记数据,另一个类有5%的标记数据。这两个班很有偏见。在

我正在进行类验证来评估不同的分类器,我发现如果一个分类器有意对具有大多数(95%)标签的类进行预测,即使其他类的预测结果不准确,从精确度/召回率来看,很难区分另一个类只有5%的标记数据。在

以下是我使用的方法/指标(使用精度/召回)。我想知道是否有其他更好的指标或方法来评估考虑到5%的小类?我被分配了一个小的5%类的权重,但我在这里要求一个更系统的方法来衡量有偏的数据集。在

使用scikit learn+python2.7。在

scores = cross_validation.cross_val_score(bdt, X, Y, cv=10, scoring='recall_weighted')
print("Recall: %0.2f (+/- %0.2f)" % (scores.mean(), scores.std() * 2))
scores = cross_validation.cross_val_score(bdt, X, Y, cv=10, scoring='precision_weighted')
print("Precision: %0.2f (+/- %0.2f)" % (scores.mean(), scores.std() * 2))

Tags: 数据方法标记bdt分类器val指标cv
1条回答
网友
1楼 · 发布于 2024-05-21 07:36:41

这是统计学中的一个常见问题,因此你可以在互联网上找到大量的资源。检查,例如,8 Tactics To Combat Imbalanced Training Data。在

可能最简单的方法是重新采样数据。最简单的方法是复制少数类,直到两个类的代表性相等。 从统计学上讲,一个更合理的方法是首先了解你的班级达到的概率分布,然后为每个班级抽取n的样本。因此,您就有了一个平衡的数据集。在

当然,这取决于你的数据——或者只是简单地从你数据中的一个子集中学习。 更多选项请参阅文章。在

相关问题 更多 >