【机器学习】AUC原理
ROC曲线的来源:
在不同任务下,用来评价一个二值学习器泛化性能的好坏。
- TPRate的意义是所有真实类别为1的样本中,预测类别为1的比例。
- FPRate的意义是所有真是类别为0的样本中,预测类别为1的比例。
ROC曲线越接近左上角,该分类器的性能越好。
为什么使用ROC曲线
为什么还要使用ROC和AUC呢?已经有那么多的衡量指标啦!因为ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。
在上图中,(a)和(c)为ROC曲线,(b)和(d)为Precision-Recall曲线。(a)和(b)展示的是分类其在原始测试集(正负样本分布平衡)的结果,(c)和(d)是将测试集中负样本的数量增加到原来的10倍后,分类器的结果。可以明显的看出,ROC曲线基本保持原貌,而Precision-Recall曲线则变化较大。
ROC曲线的绘图过程:
给定m+个正例和m-个反例,根据学习器预测结果对样例进行排序,然后把分类阈值设为最大,即把所有样例均预测为反例,此时真正例率和假正例率均为0,在坐标(0,0)处标记一个点。然后,将分类阈值依次设为每个样例的预测值,即依次将每个样例划分为正例。设前一个标记点坐标为(x,y),当前若为真正例,则对应标记点的坐标为(x,y+1/m+);(emmm就是纵轴真正例率up)当前若为假正例,则对应标记点的坐标(x+1/m-,y),(emmm就是横轴假正例率up),然后用线段连接相邻点即得。
AUC的引出:
若两个学习器的ROC曲线发生交叉,则需要判别ROC曲线下的面积即AUC,来决定哪个model更好。(模型选择)
AUC(Area Under Curve)被定义为ROC曲线下的面积,显然这个面积的数值不会大于1。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围在0.5和1之间。使用AUC值作为评价标准是因为很多时候ROC曲线并不能清晰的说明哪个分类器的效果更好,而作为一个数值,对应AUC更大的分类器效果更好。
AUC计算:
AUC意味着什么?
首先AUC值是一个概率值,当你随机挑选一个正样本以及一个负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值。当然,AUC值越大,当前的分类算法越有可能将正样本排在负样本前面,即能够更好的分类。
参考:
《机器学习西瓜书》