1. 定义法
POC曲线横轴为FPR:假正例率,纵轴为TPR:真正例率。
AUC其实就是ROC曲线下的面积:
m为总样本个数
2. 排序损失法
形式化的看,AUC考虑的是样本预测的排序质量,因此与排序误差有紧密联系。
给定 m+ 个正例和m-个反例,令D+和D-分别表示正、反例集合,则排序损失定义为:
解释:排序是按照样本被预测成正例的概率由大到小降序排列。理想中的预测是正例都排在反例的前面。但是不一定会是理想的,有可能出现了损失:有的反例出现在了正例的前面,但是要怎样计算这种损失呢?
- 遍历每一个反例,对于每一个出现在该反例后面或相等的正例:(比较都是按照预测称为正例的概率来比较的)
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