ROC的定义
在信号检测理论中,接收者操作特征曲线(receiver operating characteristic curve,或者叫ROC曲线)是一种坐标图式的分析工具,用于 (1) 选择最佳的信号侦测模型、舍弃次佳的模型。 (2) 在同一模型中设置最佳阈值。
– 来自wiki
说人话就是,ROC曲线可以用图形的方式呈现模型的结果。 并且直观地让人:
- 判断两个模型谁好谁差(也会存在难以判断的情况)
- 从图中找到一个模型的最佳阈值点来划分正例和反例
混淆矩阵
假设:基于2分类。
既然要判断一个模型的好坏,首先我们要有的基本概念就是,样本本身有正例有负例,而模型的预测也有正有负。所以我们会得到一个矩阵,称之为混淆矩阵:
- 伪阳性率(FPR):判定为正例却不是真正例的概率,即真负例中判为正例的概率
- 真阳性率(TPR):判定为正例也是真正例的概率,即真正例中判为正例的概率(也即正例召回率)
- 伪阴性率(FNR):判定为负例却不是真负例的概率,即真正例中判为负例的概率。
- 真阴性率(TNR):判定为负例也是真负例的概率,即真负例中判为负例的概率。
ROC
先不管ROC的横纵轴定义,先看一下下面这个图:
模型对每个样本都会预测一个分数,我们找到所有的正例,按模型预测的分数将样本从下往上排在纵轴上,同时按模型预测的分数将所有负样本从左往右排在横轴上(样本点之间的间距需要一样)。
这个时候,我们需要随便定义一个阈值,超过这个阈值的样本,我们将其视为正例,小于等于这个阈值的,我们将其视为负例。
一旦定义了阈值,我们就得到了一个分类器。这个分类器以0.7作为阈值,将模型得分大于等于0.7的预测为正例,得分小于0.7的预测为负例。
所以我们会得到这样的划分:
由于我们一开始是等间距进行划分的,所以我们可以讲每一小格的值都看成是1/正例的总数量或1/负例的总数量 :
记纵轴的一格大小为:1/#p
记横轴轴的一格大小为:1/#n
#p
表示正例的总数
#n
表示负例的总数
所以纵轴0.7样本对应的值为3/#p = 3/8
所以横轴0.75样本对应的值为1/#n = 1/4
到这,其实大家应该也发现了,其实上面的两个值分别是TP/P和FP/N。
而ROC曲线就是从最大的阈值开始,根据阈值以FP/N为横坐标值TP/P为纵坐标值,画一个点 然后不断地降低阈值,并重复画点 最终将所有的点连起来的曲线。
一开始由于纵轴下边和横轴左边的样本点的分数比较高,
评估模型的排序能力
对于样本类别不平衡不敏感
AUC of ROC
概率推导
几何推导
AUC计算
几何计算
问题:会出现梯形