精度和召回率

一、为分类任务选择正确的衡量指标
  • 不平衡的分类问题:如恐怖分子检测、当疾病在公众中的发病率很低时的疾病监测等
    有这么一个模型:将从美国机场起飞的所有乘客简单地标注为非恐怖分子。已知美国全年平均有 8 亿人次的乘客,并且在 2000-2017 年间共发现了 19 名恐怖分子,这个模型达到了接近完美的准确率——99.9999999%。
    在恐怖分子检测的问题中宣布所有的数据点为负例(非恐怖分子)是毫无裨益的,相反,我们应该聚焦于正例(恐怖分子)的识别。
    直觉告诉我们,我们应该最大化的是统计学上称为召回率或查全率(recall)的衡量指标,或者是最大化模型找到数据集中所有相关案例的能力。
  • 精度:P = TP/(TP+FP);
    反映了被分类器判定的正例中真正的正例样本的比重。
  • 准确率(Accuracy)
    A = (TP + TN)/(P+N) = (TP + TN)/(TP + FN + FP + TN);
    反映了分类器统对整个样本的判定能力——能将正的判定为正,负的判定为负。
  • 召回率(Recall && True Positive Rate)
    Recall=TP/(TP+FN);
    反映了所有真正为正例的样本中被分类器判定出来为正例的比例
  • 精度就是找得对,召回率就是找得全。
    精度(查准率)不冤枉一个好人
    召回率(查全率)不放过一个坏人
    大概就是你问问一个模型,这堆东西是不是某个类的时候,准确率就是 它说是,这东西就确实是的概率吧,召回率就是, 它说是,但它漏说了(1-召回率)这么多。
二、精度—召回率权衡
  • 在某些情况中,我们也许需要以牺牲另一个指标为代价来最大化精度或者召回率。
    例如,在之前的例子中,在对患者进行随访检查的初步疾病筛查中,我们可能希望得到接近于 1 的召回率—我们想找到所有实际患病的患者。如果随访检查的代价不是很高,我们可以接受较低的精度。
  • 然而,如果我们想要找到精度和召回率的最佳组合,我们可以使用 F1 score 来对两者进行结合:精度和召回率的调和平均:
    在这里插入图片描述
    我们使用调和平均而不是简单的算术平均的原因是:调和平均可以惩罚极端情况。一个具有 1.0 的精度,而召回率为 0 的分类器,这两个指标的算术平均是 0.5,但是 F1 score 会是 0。
三、可视化精度和召回率
  • 混淆矩阵(confusion matrix)
    在这里插入图片描述
    注意假正,假负都是针对预测结果而言的

  • ROC曲线(Receiver Operating Characteristic,受试者工作特征曲线)
    ROC曲线显示了当我们调节模型中阈值(高于阈值的为正例)时,召回率与精度的关系如何变化。

    假设有一个识别疾病的模型,模型会为每个患者输出一个0到1间的分数,我们可以在0-1范围内设置一个阈值来标记患者是否患有该疾病。 通过调节阈值,我们可以让精度与召回率之间有一个较好的平衡。
    在这里插入图片描述
    在这里插入图片描述
    ROC 曲线的Y 轴表示真阳性率(TPR), X 轴表示假阳性率 (FPR)。真阳性率就是召回率,假阳性率是负例被判断为正例的概率,两者都可以通过混淆矩阵计算得到。

    当阈值为1.0时,我们将位于曲线的左下角,此时没有将数据点标识为正类,也就没有真阳性结果和假阳性结果(TPR = FPR = 0)。
    降低阈值时,会沿着曲线向右和向上移动,曲线的右上角对应阈值为0的情况

    (1)最好阈值:ROC曲线越靠近左上角,试验的准确性就越高。最靠近左上角的ROC曲线的点是错误最少的最好阈值,其假阳性和假阴性的总数最少
    (2)分类器比较:可将各分类方法的ROC曲线绘制到一起,靠近左上角的ROC曲线所代表的受试者工作最准确。亦可通过分别计算各个试验的ROC曲线下的面积(AUC)进行比较,哪一种分类方法的 AUC最大,则诊断价值(分类效果)最佳。

猜你喜欢

转载自blog.csdn.net/aLWX_hust/article/details/86546166