精确率-召回率曲线 (PR 曲线) – ML2025年6月24日 | 阅读 11 分钟 引言PR 曲线,也称为精确率-召回率曲线,是一种用于评估机器学习中二元分类模型性能的图形化表示。它展示了两个重要指标之间的权衡:精确率(所有正预测中真正为正的预测所占比例)和召回率(所有实际为正的实例中真正为正的预测所占比例)。 精确率和召回率分别绘制在 PR 曲线的 y 轴和 x 轴上。当这些指标的平衡取决于分类阈值时生成的曲线,可以说明模型在不同场景下识别正例的能力。 PR 曲线在机器学习中的重要性在正样本数量远少于负样本数量的情况下,PR 曲线尤其有用。在这种情况下,传统的准确率等指标将无法充分反映模型的有效性。PR 曲线通过关注良好地识别正例和低假正例率之间的和谐来解决这个问题。 - 关注正类:强调正类的性能,在异常检测、欺诈检测和疾病诊断中很重要。
- 细粒度阈值分析:PR 曲线有助于在决策使用时,在精确率和召回率之间取得精确的平衡。
- 其他指标的补充:尽管 PR 曲线在不平衡数据集上更具参考价值,因为它只考虑正类,不像 ROC 曲线那样同时考虑 TP 率和 FP 率。
与 ROC 曲线的比较两者都用于评估分类模型,但 PR 曲线和 ROC 曲线的应用和解释方式大不相同。 特性 | PR 曲线 | ROC 曲线 |
---|
重点 | 正类性能 | 整体性能(两个类别) | 使用的指标 | 精确率、召回率 | 真阳性率、假阳性率 | 对不平衡的敏感性 | 更适合不平衡数据集 | 在不平衡数据集上可能给出误导性结果 | 可视化 | 精确率 vs. 召回率 | TPR vs. FPR |
精确率-召回率分析中的关键指标精度精确率是衡量模型预测未来情况在多大程度上准确的指标。它计算模型预测为正的实例中,真正为正的预测所占的百分比。当假正例的成本很高时,精确率很有用。 公式 精确率 = 真阳性 (TP) / 真阳性 (TP) + 假阳性 (FP) 意义: - 精确率衡量的是准确性。它回答了我们从模型的正预测中获得了多少?
- 高精确率的一个特点是模型产生的假阳性较少,因为尽量减少假阳性预测的数量很重要,即使预测的成本很高,这都是在垃圾邮件分类或欺诈检测的背景下。
- 通常,精确率与其他指标一起考察,因为如果没有高召回率(灵敏度),它就没有意义。
召回率 (灵敏度)召回率也称为灵敏度或真阳性率,它衡量模型查找数据集中所有相关实例的能力。报告的是模型正确识别的实际正例占所有实际正例的百分比。 公式: 召回率 = 真阳性 (TP) / 真阳性 (TP) + 假阴性 (FN) 重要性: - 召回率是完整性的一项指标。它接着问模型实际正确地识别了多少实际正例。
- 在漏掉重要实例(假阴性)可能导致严重后果的情况下,高召回率是必须的。
- 需要召回率和精确率的平衡,因为高召回率可能导致假阳性增加。
F1 分数F1 分数是精确率和召回率的调和平均数。然而,它仍然提供了一个能够平衡召回率和精确率的单一指标,这在您希望平衡这两个指标时很有用。 公式: F1 分数 = 2 × 精确率 × 召回率 / (精确率 + 召回率) 意义: - F1 分数确保了精确率或召回率评分都不会主导评估的评分,这使其适用于不平衡数据集的评估。
- 取值范围在 0 到 1 之间,其中 0 表示最差性能,1 表示完美的精确率和召回率。
- 也就是说,具有高 F1 分数的模型是有效的,因为它们在减少假阳性和假阴性之间取得了平衡。
精确率与召回率的关系 这是因为精确率和召回率是负相关的,提高其中一个通常会导致另一个的损失。 - 高精确率,低召回率:为了避免付出太多假阳性的代价而对召回率的益处甚微,模型可以选择相对较低的精确率,但仍然召回大部分案例。
- 高召回率,低精确率:在这种情况下,模型预测的正类实例较少,以减少假阴性的错误率,但导致假阳性错误率增加。
- 平衡精确率和召回率:然而,这主要取决于问题的具体情况。例如
- 在欺诈检测中,可以优先考虑准确性,以免进行不必要的调查。
- 为了不错过任何情况,医疗诊断可能会更优先考虑召回率。
理解 PR 曲线精确率-召回率 (PR) 曲线是分析分类模型(尤其是涉及不平衡数据集时)的关键指标。它是一个图形表示,描绘了在不同决策阈值下精确率和召回率之间的权衡。 构建 PR 曲线计算一系列决策阈值下的精确率和召回率,并将它们绘制成 PR 曲线。 - 生成预测概率:不直接输出二元预测,而是获取模型对正类的预测概率。
- 设置阈值:选择一组位于 0 和 1 之间的阈值。每个阈值定义了一个点,在该点模型将预测为正类或负类。
- 计算精确率和召回率:对于每个阈值,计算精确率和召回率。
- 精确率 = 真阳性 (TP) / 真阳性 (TP) + 假阳性 (FP)
- 召回率 = 真阳性 (TP) / 真阳性 (TP) + 假阴性 (FN)
- 绘制 PR 曲线:在图上,将召回率绘制在 x 轴上,精确率绘制在 y 轴上。将这些点连接起来形成曲线。
PR 曲线的组成部分精确率-召回率权衡 PR 曲线描绘了精确率和召回率之间存在权衡关系。 - 高精确率,低召回率:模型产生更多的假阳性,通常真正的阳性数量也较少。
- 高召回率,低精确率:这种情况发生在模型做出更多正类预测时,导致真阳性增加,同时假阳性也随之增加。
AUC-PR (曲线下面积 - PR) - 最后一个指标是精确率-召回率曲线下面积 (AUC-PR),它用于量化模型的整体性能。
- 较高的 AUC-PR 意味着在所有阈值下,精确率和召回率之间的平衡性更好。
- 尤其是在不平衡数据集上,准确率可能会产生误导。
PR 曲线的视觉解释:高 AUC-PR vs. 低 AUC-PR高 AUC-PR - 位于右上角的曲线表示高精确率和高召回率。
- 这是一个很好的指标,表明模型能够以很少的假阳性很好地识别正类。
低 AUC-PR - 如果 PR 曲线接近对角线,则性能较差,意味着模型不能很好地区分正负类。
- 这种情况通常发生在模型的预测接近随机猜测时。
关键观察 - 陡峭的初始上升:具有高精确率和低错误率的初始曲线,之后可以适合用于需要严格识别正类的应用。
- 平缓的尾部:随着召回率成本的增加,平缓的曲线在精确率方面的回报递减,但会导致精确率大幅下降。
绘制精确率-召回率 (PR) 曲线的步骤1. 数据集准备- 选择合适的数据集:首先使用一个带标签的数据集,其中包含一类正实例和一类负实例。例如,在医学诊断问题中,正类可能表示疾病存在,负类表示疾病不存在。
- 分割数据集:我们将数据集分成训练集和测试集,以便无偏地评估模型。通常,分割比例为 80-20 或 70-30。
- 处理类别不平衡:当数据集不平衡时,对少数类和多数类进行重采样。例如,对少数类进行过采样,对多数类进行重采样或欠采样。您也可以使用合成数据生成方法,例如SMOTE(合成少数类过采样技术)。
2. 选择评估指标- 精确率:它计算模型预测的正概率中,真正为正的概率所占的比例。
公式: 精确率 = 真阳性 (TP) / 真阳性 (TP) + 假阳性 (FP) - 召回率 (灵敏度):它是在模型能够正确检测到的实际正例中所占的比例。
公式: 召回率 = 真阳性 (TP) / 真阳性 (TP) + 假阴性 (FN) - 阈值:为了评估 PR 曲线,模型在不同的概率阈值下进行评估。这些阈值设定了精确率和召回率之间的权衡关系。
3. 生成预测和概率- 定义一个二元分类模型(取决于问题,如逻辑回归、决策树等),并拟合该模型。
- 我们不直接获取二元预测,而是获取模型对正类的预测概率。这意味着,像Scikit Learn这样的库在Python中提供了提取概率的方法。
为不同阈值计算精确率和召回率- 使用预测概率在各种阈值下计算精确率和召回率。
- Scikit-learn 提供了方便的函数来完成此操作。
使用 Python/Matplotlib 或其他工具可视化曲线- 为交易者绘制精确率-召回率曲线,展示不同阈值下的表现。
- 使用 Matplotlib 的示例代码
- 可视化增强:显示特定的决策阈值点,并使用 F1 分数标注图上精确率和召回率的最佳平衡点。
示例 输出  解释 PR 曲线在处理不平衡数据集时,解释机器学习模型的精确率-召回率 (PR) 曲线至关重要。 高精确率,低召回率高精确率意味着大多数预测为正的实例是正确的;低召回率表示大多数实际为正的实例未被捕获。 影响: - 模型对正向预测非常有信心,但无法识别大部分实际的正向实例。
- 这种情况在假正例成本高昂时很常见(例如,医学诊断中误诊可能导致不必要的治疗)。
- 示例:在欺诈检测中16,高精确率伴随低召回率意味着模型正确地识别了少量欺诈交易,但未能识别出许多其他欺诈交易。
改进策略: - 更改决策阈值以提高召回率。
- 使用过采样或欠采样技术来处理类别不平衡。
高召回率,低精确率高召回率表示检测到了大部分实际的正例。然而,低精确率意味着存在大量假阳性。 影响: - 这种权衡允许模型广撒网以捕获尽可能多的正例,但代价是产生许多不正确的预测。
- 例如,在早期癌症筛查等情况下,这种情况是合适的,因为漏掉正例比产生假阳性更重要。
- 例外:电子邮件垃圾邮件检测就是一个例子,高召回率伴随低精确率意味着模型几乎能识别所有垃圾邮件,但也会错误地将许多非垃圾邮件标记为垃圾邮件。
改进策略: - 然后微调模型以减少假阳性。
- 后处理预测以重新分类临界预测。
平衡的精确率和召回率也就是说,模型能够以精确率(即保证正确预测)识别正例(召回率)。 影响: - 其中,高 F1 分数(精确率和召回率的结合)代表了这种平衡。
- 这对于金融领域的信用风险评估非常理想,因为它可以处理假阳性和假阴性都会产生严重后果的情况。
示例: 在自动驾驶系统中,精确率和召回率需要平衡,以准确可靠地检测障碍物。 实现策略: - 使用交叉验证优化超参数。
- 仔细选择并调整精确率和召回率之间的权衡,以及成本敏感型指标。
解释 PR 曲线时的陷阱误导性的 AUC-PR: - 然而,如果模型的 PR 曲线下面积 (AUC-PR) 分数很高,这并不一定意味着模型在所有方面都表现良好。
- 在不平衡的数据集中,即使是高 AUC-PR,也可能因为负类(真负例)的数量压倒性地多而产生偏差。
过度拟合一个指标: - 在实践中,不可能做到一切完美(无论是精确率还是召回率),因此最好同时关注两者。
- 在优化某个指标之前,始终将逻辑比率视为提供上下文和错误成本的依据。
阈值选择: - PR 曲线通过决策阈值反映性能。
- 如果阈值选择不当,可能会高估或低估模型的性能。
数据分布的影响: - 由于识别的类(例如,更多正类或更多负类)分布的变化,PR 曲线的形状可能会发生巨大变化。
- 始终在数据分布恒定的情况下解释 PR 曲线。
精确率-召回率曲线的应用欺诈检测金融欺诈或网络攻击是罕见但关键的活动,需要检测。 - PR 曲线用法: PR 曲线可用于评估模型在识别欺诈活动方面的效果,以验证模型在既不过度发出错误警报,也不未能识别欺诈活动方面的准确性。
- 示例: 高召回率意味着大多数欺诈案件将被检测到,而高精确率意味着标记的实例很可能是欺诈。
医学诊断- 在诊断癌症或罕见遗传疾病等疾病时,有时需要从大量人群中识别出少数正样本。
- PR 曲线用法: 在医学诊断中,高召回率对于确保不漏掉任何关键病例至关重要,同时精确率对于避免对无用患者进行药物治疗或检查也至关重要。
- 示例: 例如,PR 曲线可以帮助在癌症的早期检测和减少假阳性之间取得正确的平衡,从而避免不必要的压力或开销。
信息检索系统- 推荐系统和搜索引擎旨在为用户查询返回它们认为最相关的信息。
- PR 曲线用法: 精确率衡量检索到的文档或推荐的相关性,召回率衡量系统检索所有适用项目的好坏。
- 示例: 例如,在搜索引擎中,高召回率保证搜索是完整的(检索到所有相关文档),而高精确率保证用户不会得到太多不相关结果。
|