在机器学习中,查全率(Recall)、查准率(Precision)和精度(Accuracy)是评估分类模型性能的重要指标。这些指标帮助我们理解模型在特定任务上的表现,特别是在处理不平衡数据集时尤为重要。
对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为真正例(true positive)、假正例(false positive)、真反例(true negative)、假反例(falsenegative)四种情形,令TP、FP、TN、FN分别表示其对应的样例数,则显然有TP+FP+TN+FN=样例总数。分类结果的“混淆矩阵”(confusion matrix)如表所示。
查全率(Recall)查全率也被称为召回率,是指模型正确识别出的正例数量占所有实际正例的比例。计算公式为:
其中,TP (True Positive) 是真正例数,即模型正确预测为正类别的实例数;FN (False Negative) 是假负例数,即实际上为正类别但被模型错误地预测为负类别的实例数。
查全率高意味着模型能够较好地识别出大部分的实际正例。在一些应用场景中,比如疾病检测,高查全率是非常重要的,因为错失一个病例可能带来严重的后果。
查准率(Precision)查准率是指模型预测为正例的实例中,实际确实为正例的比例。计算公式为:
其中,FP (False Positive) 是假正例数,即实际上为负类别但被模型错误地预测为正类别的实例数。
查准率高意味着当模型预测某个实例为正类时,该预测结果很可能是正确的。在推荐系统等应用中,高查准率可以减少用户的困扰,避免向用户推荐大量不相关的内容。
精度(Accuracy)精度是指模型预测正确的总实例数与全部实例数的比例。计算公式为:
其中,TN (True Negative) 是真负例数,即模型正确预测为负类别的实例数。
精度是一个直观且易于理解的指标,但在数据不平衡的情况下,它可能不是最佳的选择。例如,在一个95%的样本都是负类的二分类问题中,即使模型总是预测负类,其精度也可以达到95%,但这显然不是一个好的模型。
应用场景医疗诊断:在此领域中,通常更关注查全率,因为漏诊可能会导致严重后果,而误诊虽然也有成本,但通常不如漏诊严重。垃圾邮件过滤:在垃圾邮件过滤中,查准率非常重要,因为将正常邮件误判为垃圾邮件(假正例)会严重影响用户体验。推荐系统:推荐系统中通常追求高的查准率,以确保推荐给用户的内容是高质量的,同时也会考虑查全率来确保推荐的多样性。在选择评估指标时,需要根据具体的应用场景和业务目标来决定哪些指标更重要。有时候,可能还需要综合考虑多个指标,或者使用F1分数(查准率和查全率的调和平均值)来平衡两者之间的关系。
P-R曲线P-R曲线(Precision-Recall Curve)是通过在不同阈值下计算模型的精确率(Precision)和召回率(Recall)得到的。P-R曲线是一种重要的模型评估工具,尤其适用于不平衡数据集分类问题的评估与优化。通过P-R曲线,我们可以更清晰地了解模型在不同精度和召回率条件下的表现,从而调整模型参数或处理不均衡样本。
P-R曲线直观地显示了模型在精确率和召回率上的表现。通常情况下,我们认为P-R曲线下的面积越大,模型性能越好。此外,P-R曲线还可以用于比较不同模型的性能,如果一个模型的P-R曲线完全包住另一个模型的P-R曲线,则前者的性能优于后者。
P-R曲线绘制例子假设我们有一个二分类问题,目标是区分猫(正样本)和狗(负样本)。我们有一个训练好的模型,该模型对测试集中的每个样本都会输出一个预测为正样本的概率。
设置阈值:首先,我们设定一个阈值(例如0.5),如果模型预测的概率大于这个阈值,我们就认为这个样本是猫(正样本),否则认为是狗(负样本)。计算TP、FP、FN:根据设定的阈值,我们可以计算出真正例(TP)、假正例(FP)和假反例(FN)的数量。TP:模型预测为正样本,且实际也为正样本的实例数。FP:模型预测为正样本,但实际为负样本的实例数。FN:模型预测为负样本,但实际为正样本的实例数。计算精确率和召回率:利用上述的TP、FP、FN数量,我们可以计算出当前阈值下的精确率和召回率。调整阈值并重复:我们不断调整阈值(例如从0到1,每次增加一个小步长),并重复步骤2和3,得到一系列不同阈值下的精确率和召回率。绘制P-R曲线:最后,我们将这些精确率和召回率绘制在坐标系上,横轴为召回率(Recall),纵轴为精确率(Precision),连接这些点得到的曲线就是P-R曲线。— END —
如需人工智能专题学习资料,请后台留言。
《统计学习方法》
《机器学习基础》
《深度学习导论》
《人工智能导论》
《TensorFlow2深度学习》
《Pytorch》
......