在Precision Recall值上评估ML算法的正确方法是什么?

时间:2019-04-15 18:58:19

标签: machine-learning statistics precision

所以我知道Precision和Recall代表什么。

精度针对误报和召回误报进行优化。最后,应考虑到企业的成本目标是什么。像在医院一样,您可能希望拥有一种召回率高(误报率低)的算法,因为错过识别恶性肿瘤的成本远远超过了对这些误报进行更多调查的成本。

但是什么仍然被认为是不错的精度/召回率指标?就像我有一个Binary分类算法,其精度为0.34,但Recall为0.98。即使业务目标偏向于优化误判否定(高查全率),也可以考虑这样一种算法,尽管它偏向于高查全率,但精度值却很低。

注意:我遇到了严重的班级失衡问题,其中obs 0约为99%,而1级只有不到1%。

enter image description here

1 个答案:

答案 0 :(得分:0)

这在很大程度上取决于上下文,但是让我们假设此分类器在非常难以检测的非常早期就检测出恶性肿瘤。

现在出于分析目的,让我们有两个场景,两个假设不同。

方案1:该系统将用作大量人员的快速过滤阶段,以迅速遣散那些不怀疑肿瘤的人

在那种情况下,这种具有0.98召回率的模型很少会让未被发现的肿瘤滑倒,这是系统的主要目的,因为它只是快速过滤阶段,可消除相当一部分人,因为以下检查非常昂贵且耗时。

我会说该系统在那种情况下会很好

方案2:该系统将用于诊断直接参与昂贵治疗计划的肿瘤患者

在这种虚构的情况下,该系统对那些被归类为肿瘤的人非常有信心和精确,因为在此之后没有后过滤阶段,而且治疗成本高昂,并且可能会带来非常有害的副作用-对那些不是癌症战士的人的影响。

在这种情况下,该模型将在此场景中达到预期的目的。

因此,这完全取决于情况,在场景1中,只要召回率很高,就可以使用低精度,这是完全可以的,当然,精度越高越好,但是只要不低于召回的特定阈值。

在方案2中,尽管召回率过低,但预计仍具有很高的精度,在该方案中,.99精度和.05的召回率是完全可以的。

更新1

关于您的数据集所遭受的类别失衡,这可能直接影响欠采样类别的不良精度,如果您尝试使用加权损失,则欠采样类别的权重较高,应该有助于平衡训练期间的课堂影响。

有许多技术可用于处理不平衡的数据集,您可以阅读有关它们的更多信息here