2. AUC的四种计算方法

1. 定义法

POC曲线横轴为FPR:假正例率,纵轴为TPR:真正例率。
AUC其实就是ROC曲线下的面积:
2. AUC的四种计算方法_第1张图片
m为总样本个数

2. 排序损失法

形式化的看,AUC考虑的是样本预测的排序质量,因此与排序误差有紧密联系。
给定 m+ 个正例和m-个反例,令D+和D-分别表示正、反例集合,则排序损失定义为:
2. AUC的四种计算方法_第2张图片
解释:排序是按照样本被预测成正例的概率由大到小降序排列。理想中的预测是正例都排在反例的前面。但是不一定会是理想的,有可能出现了损失:有的反例出现在了正例的前面,但是要怎样计算这种损失呢?

  • 遍历每一个反例,对于每一个出现在该反例后面或相等的正例:(比较都是按照预测称为正例的概率来比较的)
    1. 若该正例小于该反例,则记录一个罚分
    2. 若该正例等于该反例,则记录0.5个罚分
  • 将所有的罚分相加,记为sum
  • AUC = 1- sum

3. 排序收益法

该方法与排序损失法相似,排序收益法则直接计算ROC曲线下的面积。
具体步骤:

  • 将样本中正例的个数记为M,反例的个数记为N
  • 首先对所有样本按照预测为正例的概率由大到小排序。
  • 遍历每一个正例,对于概率小于或者等于其的反例进行以下计算:
    1. 若该正例大于该反例,则记录一分
    2. 若相等,则记录0.5分
  • 将所有分数相加,记为sum
  • AUC = sum / m / n

4. 排序法

在这里插入图片描述

上述公式中:n0 为样本中反例的个数,n1为样本中正例的个数,ri为当前位置的下标。

解释:

  • 对于排序之后的样本,将每个反例的下标相加(从1开始,不是0),记为sum
  • T = sum - n0*(n0 + 1)/2
  • AUC =T/n0/n1

你可能感兴趣的:(机器学习)