ROC和AUC

2017/04/02 机器学习

1. 精确度、召回率、准确率

  • 精确度(precision):又叫查准率,预测为正例的样本中,有多少比例是真正的正例。
  • 召回率(recall):又叫查全率,真正的正样本中,有多少比例是预测对了。

  • 准确率(accuracy):正确预测的比例 也就是有百分之几的样本被正确的分类了,(包括正、负样本)。

  • 计算公式:
- P(真正) N(真正)
P(预测) TP FP
N(预测) FN TN

真阳性(TP)——正确的肯定 真阴性(TN)——正确的否定 假阳性(FP)——错误的肯定,假报警,第一类错误 假阴性(FN)——错误的否定,未命中,第二类错误

精确度:(precision) 精确度P:

召回率:(recall)

  • $F1-measure$

$F1-measure$计算公式如下:

2. PR曲线和ROC曲线

  • 如何得到PR曲线? 对于一些模型(e.g. Logistic Regression、SVM、神经网络)输出一个得分score。将score从大到小排序,依次以每个score为阈值,预测样本的正负,得到分类结果,然后计算precision和recall。 假设测试集有200个样本,那么就可以得到200个precision-recall,以precision为x轴,recall为y轴就可以在二维坐标图中得到PR曲线。

  • 如何得到ROC曲线? 方法和上面的类似,只是x轴是假阳性率, y轴是真阳性率 sklearn中的ROC

  • 为什么用ROC曲线?

    既然已经这么多评价标准,为什么还要使用ROC和AUC呢?因为ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。








Search

    Post Directory