机器学习——性能度量|Day3

1 ROC与AUC

很多学习器是为测试样本产生一个实值或概率预测,然后将这个预测值与一个分类阈值进行比较,若大于阈值则分为正类,否则为反类。而实际上我们可以根据这个实值将测试样本进行排序,分类过程则相当于在这个排序中加了一个截断点,将样本分为两部分,前一部分判做正例,后一部分判做反例。

在不同的应用任务中,我们可以根据任务需求来采用不同的截断点,例如若我们更重视“查准率”,则可以选择排序中靠前的位置来“截断”。例如,我们在训练好模型对葡萄进行预测后得到了一组取值在[0,1]之间实值,但我们并不能很好的知道,究竟以多少为分界点才“合适”。

那么什么样才叫做合适呢,这应当与我们的实际问题说实际需求相关,比如,农民和收购者交易,收购者会购买利用模型预测实值为“great”的葡萄,那对于农民来说,它并不关心“预测为great”中“真正的great”占多少(即查准率);而更关心,“真正为great”的葡萄中有多大比例被预测出来了(查全率)。反过来对于收购者也是一样,收购者更关心“查准率”,而不太关注“查全率”。

因此,排序本身的质量好坏,体现了综合考虑学习器在不同任务下的“期望泛化性能”的好坏,或者说“一般情况下”泛化性能的好坏。ROC曲线则是从这个角度出发来研究学习器泛化性能的有力工具。

ROC的全称为“受试者工作特征”(Receiver Operating Characteristic).与P-R曲线类似,他也是根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出两个重要量的值,分别以他们为横纵坐标作图,就得到了ROC曲线,只不过ROC的纵轴曲线是“真正例率(True Positive Rate)”,横轴是假正例率(False Positive Rate)。两者分别定义为

TPR=\frac{TP}{TP+FN}

即真的是对的的里面有多少被预测出来(类似查全率)

或者说真的里面有多少被预测成真的

FPR = \frac{FP}{TN+FP}

即假的里面有多少被预测成真的

  显示ROC的图被称为“ROC图”。示意图如下,显然对角线对应于随机猜测模型;而(0,1)则对应于将所有正例排在所有反例前的理想模型

 需要注意的是,他一定不是一个圆滑的曲线,甚至在某些地方可能会有极大的波动,换言之不那么“连续”

现实中通常是利用有限个测试样例来绘制ROC图,此时仅能获得有限个坐标对进行绘图,绘图过程很简单:给定m+个正例和m-个反例,根据学习器预测结果对样例进行排序,然后把分类阈值设为最大,即把所有样例预测为反例,此时真正例率和假正例率均为0,在坐标(0,0)处标记一个点,然后将分类阈值依次设为每个样例的预测值,即依次将每个样例点划分为正例,设前一个标记点坐标为(x,y),当前若为真正例,则对应标记点的坐标为(x,y+1/m+);若当前为假正例,则对应标记点的坐标为(x+1/m-,y),然后用线段链接相邻点即可(练出来不是圆滑的,更像是一种阶梯状)。

进行学习器性能的比较时,与PR图相似,若一个学习器的ROC曲线被另一个学习器的权限完全“包住”,则可断言后者的性能优于前者;同样的,如果发生交叉,则很难一般性的断言孰优孰劣,此时同样可以进行比较,同样的是判定ROC曲线下的面积,在这里,我们将这个指标计算出来;即AUC(Area Under ROC Curve)。

假定ROC曲线的坐标为{(x1,y1),(x2,y2)……(xm,ym)};x0=0;xm=1;因此,AUC可估算为

AUC=\frac{1}{2}\sum_{i=1}^{m-1}(X(i+1)-X(i))*(Y(i)+Y(i+1))

形式化的看,AUC考虑的是样本预测的排序质量,因此他与排序误差有紧密联系,给定m+个正例和m-个反例。领D+和D-分别表示正反例集合。则排序损失定义为

l_{rank}^{}=\frac{1}{m+ + m-}\sum_{x+\in D+}^{}\sum_{x-\in D-}^{}(\prod (f(x+)<f(x-)+\frac{1}{2}\prod (f(x+)=f(x-))) 

简而言之,即考虑每一对正、反例,若正例的预测值小于反例,则记一个“罚分”,若相等,则记0.5个“罚分”。容易看出,l_{rank}^{}对应的是ROC曲线之上的面积;若一个正例在ROC曲线上对应标记点的坐标为(x,y),则x恰是排序在其之前的反例所占的比例,即假正例率。因此,无论从图形推导,还是因果解释,以及公式推导,都不难发现

AUC=1-l_ {rank}^{}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值