简介
性能度量: 衡量模型泛化能力的评价标准(反映了任务需求,在对比不同模型的能力时,使用不同的性能度量往往会导致不同的评判结果。模型的好坏,不仅取决于算法和数据,还决定于任务需求。)
性能度量主要分为分类任务中的和回归任务中的。
分类
错误率与精度
错误率和精度是分类任务中最常用的两种性能度量。
- 错误率:分类错误的样本数占样本总数的比例。
- 精度:分类正确的样本数占样本总数的比例。
对样例集 D , 分类错误率定义为:
精度则定义为:
对于数据分布 Ð 和概率密度函数 p(.) , 错误率与精度可分别描述为:
查准率、查全率与 Fl
假定:我们关心的是"挑出的西瓜中有多少比例是好瓜",或者"所有好瓜中有多少比例被挑了出来”
例如在信息检索中,我们经常会关心"检索出的信息中有多少比例是用户感兴趣的" 用户感兴趣的信息中有多少被检索出来了”
类似上述要求的就是查准率(precision)和查全率(recall):
真正例 (true positive)、假正例 (false positive)、真反倒 (true negative) 、假反例 (false negative)
查准率: 预测正例中真正例所占的比例。
查全率: 预测真正例占正例的比例。
查准率和查全率是一对矛盾的度量。一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。这个地方我不是很理解,书中给了这样一个极端法的例子来解释:
例如,若希望将好瓜尽可能多地选出来,则可通过增加选瓜的数量来实现,如果将所有西瓜都选上,那么所有的好瓜也必然都被选上了,但这样查准率就会较低。若希望选 出 的瓜中好瓜比例尽可能高,则可只挑选最有把握的瓜, 但这样就难免会漏掉不少好瓜,使得查全率较低。通常只有在一些简单任务中才可能使查全率和查准率都很高。
根据学习器的预测结果对样例进行排序,排在前面的是学习器认为"最可能 "是正例的样本?排在最后的则是学习器认为"最不可能"是正例的样本。按此顺序逐个把样本作为正例进行预测,则每次可以计算出当前的查全率、 查准率。
以查准率为纵轴、查全率为横轴作图 ,就得到了查准率-查全率曲线,简称 " P-R曲线"。下图为一个P-R曲线例子:
- 若一个学 习器的 P-R 曲线被另一个学习器的曲线完全"包住 " , 则可断言后者的性能优于前者。(A优于C)
- 如果两个学习器的 P-R 曲线发生了交叉 (A 与 B) ,则难以一般性地断言两者孰优孰劣只能在具体的查准率或查全率条件下进行比较。
那么如何比较 P-R 曲线发生了交叉的两个学习器?
-
有时会比较 P-R 曲线面积的大小,但面积不太容易估算。
-
"平衡点 " (Break-Event Point,BEP)即:“查准率=查全率"时的取值。
-
BEP 有些简化,更常用的是 F 1 F1 F1 度量:
在一些应用中,对查准率和查全率的重视程度有所不同,例如:
在商品推荐系统中,为了尽可能少打扰用户,更希望推荐内容确是用户感兴趣的,此时查准率更重要;
而在逃犯信息检索系统中,更希望尽可能少漏掉逃犯,此时查全率更重要。
ROC 与 AUC
很多学习器是为测试样本产生一个实值或概率预测,然后将这个预测值与一个分类阈值(threshold)进行比较,若大于阈值则分为正类,否则为反类。
根据实值或概率预测结果,将测试样本进行排序,"最可能"是正例的排在最前面,“最不可能"是正例的排在最后面。分类过程就相当于在这个排序中以某个"截断点” (cut point)将样本分为两部分,前一部分判作正例,后一部分则判作反例。
如何根据任务需求来采用不同的截断点?(若更重视"查准率",则可选择排序中靠前的位置进行截断;若更重视"查全率",则可选择靠后的位置进行截断.)
ROC 全称是"受试者工作特征" (Receiver Operating Characteristic) 曲线。ROC 曲线的纵轴是"真正例率" (True Positive Rate,简称 TPR),横轴是"假正例率" (False PositiveRate, FPR)
- 真正例率:
- 假正例率:
AUC(Area Under Curve) 为ROC曲线下的面积,因为ROC曲线一般都处于y=x这条直线的上方,所以取值范围在0.5和1之间,使用AUC作为评价指标是因为ROC曲线在很多时候并不能清晰地说明哪个分类器的效果更好,而AUC作为一个数值,其值越大代表分类器效果更好。
- 若一个学习器的 ROC 曲线被另 一个学习器的曲线完全"包住", 则可断言后者的性能优于前者;
- 若两个学习器的 ROC 曲线发生交叉,则难以-般性地断言两者孰优孰劣 . 此时比较 AUC 。
代价敏感错误率与代价曲线
这个用的比较少。
由于不同类型的错误所造成的后果不同:例如在医疗诊断中,错误地把患者诊断为健康人与错误地把健康人诊断为患者,看起来都是犯了"一次错误"但后者的影响是增加了进→步检查的麻烦,前者的后果却可能是丧失了拯救生命的最佳时机。为权衡不同类型错误所造成的不同损失,为错误赋予"非均等代价" (unequal cost)
以二分类任务为例,可根据任务的领域知识设定一个"代价矩阵" (cost matrix) 。 c o s t i j cost_{ij} costij 表示将第 i 类样本预测为第 j 类样本的代价。一般来说 , c o s t i i = 0 cost_{ii}= 0 costii=0 ; 若将第 0 类判别为第 1 类所造成的损失更大,则 c o s t 01 > c o s t 10 cost_{01} > cost_{10} cost01>cost10; 损失程度相差越大 , c o s t 01 cost_{01} cost01 与 c o s t 10 cost_{10} cost10 值的差别越大。
代价敏感 (cost-sensitive)错误率为:
代价曲线: 在非均等代价下, 代价曲线能直接反映出学习器的期望总体代价。
横轴是取值为 [0 , 1]的正例概率代价:
其中 p 是样例为正例的概率。
纵轴是取值为 [0 , 1] 的归一化代价:
代价曲线的绘制: ROC 由线上每…点对应了代价平面上的一条线段,ROC 曲线上点的坐标为 (TPR, FPR) ,则可相应计算出 FNR,然后在代价平面上绘制一条从 (O , FPR) 到 (l , FNR) 的线段,线段下的面积即表示了该条件下的期望总体代价;如此将 ROC 曲线土的每个点转化为代价平面上的一条线段,取所有线段的下界,围成的面积即为在所有条件下学习器的期望总体代价。