目录
1.1.1 Precision、Recall、Accuracy、ErrorRate 与 PR
1.1.2 TruePositiveRate、FalsePositiveRate、ROC 与 AUC
一、评估指标
评估指标用于反映模型效果。在预测问题中,要评估模型效果,就要将模型预测值 与样本的真实值 (Ground-Truth / Label) 进行比较,而评估指标 / 评价得分 (Evaluation Score) 即为 和 的函数:
通常,线下使用机器学习评估指标,线上使用业务指标。若线下指标和线上指标不同,则可能出现线下指标变好而线上指标变差的现象 (线下线上不一致)。为此,在一个新问题的开始阶段,都会进行多轮模型迭代,来 探索和线上业务指标一致的线下指标,尽可能使线下指标的变化趋势和线上指标一致。
1.1 分类指标
1.1.1 Precision、Recall、Accuracy、ErrorRate 与 PR
精确率和召回率主要用于 二分类 问题。结合 混淆矩阵 (confusion matrix) 如下所示:
其中,各标识含义为 (注:以下 “正样本”、“正例”、“正类” 等混用):
- TP (真正,True Positive):把 正样本 (P) 正确地 分类为 正类 (P)。换言之,预测的正样本确为 真 的 正 样本
- TN (真负,True Negative):把 负样本 (N) 正确地 分类为 负类 (T)。换言之,预测的负样本确为 真 的 负 样本
- FP (假正,False Positive):把 负样本 (N) 错误地 分类为 正类 (P)。换言之,预测的正样本惜为 假 的 正 样本 —— 实际是 负 样本 (I 类错误)
- FN (假负,False Negative):把 正样本(P) 错误地 分类为 负类 (T)。换言之,预测的负样本惜为 假 的 负 样本 —— 实际是 正 样本 (II 类错误)
可见,样本总数 = TP + TN + FP + FN。
现在,不妨以医院检测为例,设阴性样本 (正常) 为正例 (P),阳性样本 (有疾) 为负例 (N)。TP 和 TN 表示检测试剂准确,将阴性样本正确检测为阴性 (TP),将阳性样本正确检测为阴性 (TP);FP 和 FN 则说明检测试剂有误,把病人检测为正常人 (FP),把正常人检测成病人 (FN)。显然,在医疗检测的场景当中,假阳 (FN) 尚可以接受,假阴 (FP) 则绝对不允许。因为假阳 (FN) 还可以再检测,以确认是真阳 (TN) 还是假阳 (FN);但如果是假阴 (FP),则不但会放过真正的病例 (N),还可能对他人造成危害。因此,医疗检测试剂会比一般标准更加敏感,以提高 ,避免出现漏网之鱼。
- 精确率 / 查准率 (Precision, P):分类正确的正样本数 (TP) 占 预测为正样本的总样本数 (TP + FP) 的比例,其定义为:
可见, 反映了 所有分类器判断为正例的样本 (TP + FP) 中,真的正样本 (TP) 所占的比例。
- 召回率 / 查全率 (Recall, R):分类正确的正样本数 (TP) 占 实际的正样本总数 (TP + FN) 的比例,其定义为:
可见, 反映了 所有实际的正样本 (TP + FN) 中,真的正样本 (TP) 所占的比例。
理想时, 和 二者都越高越好。然而,二者实际是一对 矛盾 的度量: 高时, 低; 低时, 高。一个原因是 样本存在误差,尤其是临界边缘的数据由于存在误差,导致互相渗透;另一个原因是 模型拟合能力有限,非线性模型以超平面划分样本,若扩大召回,可能导致混入更多错误样本,若提升精度,必然召回会下降。例如,若某模型很贪婪,想要预测尽可能多的样本,那么犯错的概率就会随样本数增加而提升,此时会得到更高的 和较低的 ;相反,若某模型很保守,会尽量在 “更有把握” 时才把样本预测为正样本,但会因过于保守而漏掉很多 “没有把握” 的正样本,导致 Recall 值降低,此时会得到更高的 和较低的 。通常,只有某些简单任务才会二者都高。因此,在不同场合需根据实际需求判断哪个指标更紧要,以便于 trade-off。
在很多情形下,可根据学习器/模型的预测结果对样例进行排序:排在前面的是学习器/模型认为 “最有可能” 是正例的样本,排在最后的则是学习器/模型认为 “最不可能” 是正例的样本。按此顺序逐个把样本作为正例进行预测。这样,二分类过程就相当于在此排序中以某个 “截断点 (cut point)” 或 “阈值 (threshold)” 将样本分为两份,前半部分判作正例,后半部分判作反例。此时,可计算出各截断点位置上的 和 。若更重视 ,则设截断点 靠前;若更重视 ,则设截断点 靠后。
例如,在排序问题 (Ranking) 中,通常没有一个确定的分类阈值把预测结果直接判定为正样本或负样本,而是采用 Top-N 返回结果的 和 来衡量排序模型的性能。换言之,以 N 为截断点位置/长度或者说分类阈值,则认为模型返回的 Top-N 的结果就是模型判定的正样本,然后分别计算前 N 个位置上的 和 。然而,为综合评估一个排序模型的好坏,不仅要看模型在不同 Top-N 下的 和 ,而且最好绘制出模型的 曲线。
事实上,以 为横轴、 为纵轴,描点连线作图,就可以得到 Precision-Recall 曲线 (P-R 曲线),例如:
对于排序模型而言,其 曲线上的一个点代表着在某一阈值 N 下,模型将大于该阈值的结果判定为正样本、小于该阈值的结果判定为负样本,此时返回结果对应的