分类评价指标
一、错误率和精度
这两个评价指标即适用于二分类任务,也适用于多分类任务。
- 错误率(Error Rate)是分类错误的样本数占样本总数的比例。定义为:
E(f;D)=m1i=1∑mI(f(xi)=yi)其中,I为指示函数。
- 精度(Accuracy)是分类正确的样本数占样本总数的比例。
注意与查准率(准确率)进行区分。
定义为:
acc(f;D)=m1i=1∑mI(f(xi)=yi)=1−E(f;D)
二、查准率与查全率
在信息检索和Web搜索中经常出现,例如在信息检索中,我们期望会关心“检索出的信息有多少是用户真正关心的”,以及在“检出多少用户关心的信息”。
这两个分别对应查准率与查全率,一个是看检索出来的信息中,检索正确的比例,后者是从所有用户关心的样本中,看检索正确的比例。
对于二分类问题,有经典的混淆矩阵来直观地展示真实类别与分类器预测类别的组合,这些组合包括真正例(true positive)、假正例(false positive)、真反例(true negative)、假反例(false negative)。我们可以用TP,FP,TN,FN来简称这些组合,并将其放入混淆矩阵中:
真实情况 |
预测结果 |
|
|
正例 |
反例 |
正例 |
TP |
FN |
反例 |
FP |
TN |
那么我们就可以利用混淆矩阵来计算查准率和查全率,注意TP+FP+TN+FN=总样本数
查准率(准确率)
P=TP+FPTP分母为所有预测为正例的总数。
查全率(召回率)
R=TP+FNTP分母为所有正样本个数,可以理解为模型从正样本中召回了多少,这在信息检索中经常使用。
查准率-查全率曲线 (P-R曲线)
在很多情况下,我们可以根据学习器的预测结果对样例进行排序,排在前面的学习器认为“最可能”的样本,排在后面的则是“最不可能”的样本。按此顺序逐个把样本作为正例进行预测,则每次可以计算出当前的查全率和查准率。
以查准率为纵轴,以查全率为横轴作图,就得到了查准率-查全率曲线,简称为“P-R”曲线。
todo
P-R图直观地显示出学习器在样本总体上的查准率和查全率。在进行比较时,如果一个学习器的曲线完全覆盖住另一个学习器,那么可以断言前者的性能优于后者。但是如果两个学习器的曲线发生了交叉,则难以断言哪个学习器的性能更好。因此,计算P-R曲线的面积可能是一个方法,但是该面积难以估算。
- 平衡点 (Break-Even Point, BEP),就是这样一个度量。它是“查准率=查全率”时的取值,该取值越高则可以估计学习器越好。
- F1度量,仅利用平衡点还是过于简化了,更常用的是F1度量:
F1=P+R2×P×R=TP+FPTP+TP+FNTP2×TP+FPTP×TP+FNTP=TP+FN+TP+FP2×TP=(TP+FP+TN+FN)+TP−TN2×TPF1度量对于查准率和查全率的权重是相同的,但是实际应用中,我们可能期望更加关注某一指标。例如:在推荐系统中,我们期望用户获得更好的体验,推荐给用户的信息都是用户感兴趣的,因此查准率越高越好;而在逃犯信息检索系统中,我们期望找到越多越好的逃犯,因此查全率越高越好。因此,F1度量的更一般形式Fβ,它是查准率和查全率的加权调和平均,调和平均更重视较小值,它定义为:
Fβ1=1+β21⋅(P1+Rβ2)Fβ=(β2×P)+R(1+β2)×P×R
- 当β=1时,退化为标准的F1;
- 当β>1时,查全率有更大的影响;
- 当β<1时,查准率有更大的影响。
宏查准率与微查准率
很多时候我们会得到多个二分类混淆矩阵,例如,经过多次训练,多分类任务(每两两类别的组合对应一个混淆矩阵)
- 宏查准率
直接在各混淆矩阵上计算出查准率和查全率,在求平均值。得到“宏查准率”、“宏查全率”以及对应的“宏F1”。
- 微查准率
相应地,我们可以先求出所有混淆矩阵对应的TP, FP, TN, FN的平均值,在计算出“微查准率”、“微查全率”以及对应的“微F1”。
ROC与AUC
很多情况下,学习器为每个样本计算出一个实值或者预测概率,然后将这个预测值与一个分类阈值(threshold)进行比较,若大于阈值则划分为正类,小于则为反类。实际上,我们可以根据这个预测值进行排序,排序在前的最可能为正类,排序在后的更可能为反类。这样,分类过程就相当于在这个排序中,以某个截断点将样本分为两个部分,前一部分判做正例,后一部分为反例。
具体的,在实际任务中,我们可以自定这个截断点,例如:如果期望查准率更高,可以选择排序中较前的位置作为截断点;若更重视查全率,可以选择排序中较后的位置作为截断点。因此,排序本身的质量好坏,体现了综合考虑学习器在一般情况下泛化性能的好坏。ROC曲线则是从这个角度出发来研究学习器泛化性能的有力工具。
ROC曲线
ROC全称是“受试者工作特征”(Receiver Operating Characteristic)曲线。与P-R曲线类似,我们根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出真正例率(True Positive Rate TPR)和假正例率(False Positive Rate FPR)。与P-R曲线,以查准率为纵轴以查全率为横轴不同,ROC曲线的纵轴是“真正例率”,横轴是“假正例率”。二者分别定义为:
TPR=TP+FNTPFPR=TN+FPFPTPR的分母为所有正例样本数,FPR的分母为所有反例的样本数,二者的分子都是预测为正例的情况,因此ROC曲线的绘制重点在于分析预测为正例的情况。
[todo](insert roc sample)
ROC曲线的对角线对应于“随机猜测”模型,而点(0,1)则对应于将所有正例排在所有反例之前的“理想模型”。
ROC曲线的绘制
现实任务中的测试样例是有限的,因此只能获得有限个TPR和FPR,坐标对是有限的,就难以绘制平滑的ROC曲线。只能绘制出近似的ROC曲线。
- 绘制过程
给定m+个正例和m−个反例,根据学习器的预测结果对样例进行排序,然后把分类阈值设为最大,即所有结果均为反例,此时TPR和FPR均为0,在坐标(0,0)处标记一个点。然后依次将分类阈值设为每个样例的预测值,即依次将每个样例划分为正例
,设前一个标记点坐标为(x,y),当前若为真正例,则对应标记点的坐标为(x,y+m+1);当前若为假正例,则对应标记点的坐标为(x+m−1),然后用线段连接相邻点。
在进行学习器比较时,与P-R曲线类似,如果一个学习器将另一个学习器的曲线完全包住,则可以断言前者的性能好于后者。类似的,如果出现曲线交叉的情况,我们也可以计算ROC曲线的面积来衡量(P-R曲线可以比较平衡点BEP)。
AUC
AUC(Area Under ROC Curve)的定义为ROC曲线下的面积。
计算方法
-
估算
假定ROC曲线的坐标是{(x1,y1),(x2,y2),⋯,(xm,ym)}的点按顺序连接而形成,AUC可估算为:
AUC=21i=1∑m−1(xi+1−xi)⋅(yi+yi+1)这里其实就是梯形计算公式。
-
形式化
AUC考虑的是样本预测的排序质量,因此它与排序误差有紧密联系。给定m+个正例和m−个反例,令D+和D−分别表示正、反例集合,则排序损失定义为:
lrank=m+m−1x+∈D+∑x−∈D−∑(I(f(x+)<f(x−))+21I(f(x+)=f(x−)))可以记为,考虑每一对正、反例,若正例的预测值小于反例,则记一个“罚分”,若相等,则记0.5个“罚分”。这里的损失其实是在计算ROC曲线与y轴的面积,那么根据AUC的定义,AUC计算公式为:
AUC=1−lrank
todo
推导过程:
lrank=m+m−1x+∈D+∑x−∈D−∑(I(f(x+)<f(x−))+21I(f(x+)=f(x−)))=m+m−1x+∈D+∑(x−∈D−∑I(f(x+)<f(x−))+21⋅x−∈D−∑I(f(x+)=f(x−)))=x+∈D+∑(m+1⋅m−1x−∈D−∑I(f(x+)<f(x−))+21⋅m+1⋅m−1x−∈D−∑I(f(x+)=f(x−)))=x+∈D+∑(21⋅m+1⋅[m−2x−∈D−∑I(f(x+)<f(x−))+m−1x−∈D−∑I(f(x+)=f(x−))])上式经过等价变换后也可以看做是求梯形面积,前面累加正例可以理解为,每增加一个真正例就会多一条竖着的线段,后面则是计算梯形面积。
在绘制ROC曲线时,每新增一个假正例时x的坐标就增加一个步长,所以对于梯形较短的底,长度等于m−1乘以预测值大于f(x+)的假正例个数:
m−1⋅x−∈D−∑I(f(x+)<f(x−));梯形较长的底,长度等于m−1乘以预测值大于等于f(x+)的假正例个数,
m−1⋅(x−∈D−∑I(f(x+)<f(x−))+x−∈D−∑I(f(x+)=f(x−)));