上节讨论了留出法、交叉验证法、自助法这三种实验评估方法,有了方法,还需要评价标准,这就是性能度量

性能度量也有很多中种,之前说过
分类:预测离散值,二分类和多分类
回归:预测连续值

回归任务最常用的性能度量是均方误差,一般的,对于数据分布D和概率密度函数p:

E(f;D)=xD(f(x)y)2p(x)dx

其中,f(x)是学习器的预测结果,y是真实label。

主要讨论分类任务种常用的性能度量


错误率:分类错误的样本数占样本总数的比例
精度:分类正确的样本数占样本总数的比例
对于数据分布D和概率密度函数p,错误率如下:
机器学习模型评估与选择(2)

对于数据分布D和概率密度函数p,精度如下:
机器学习模型评估与选择(2)


错误率和精度不能满足所有任务需求,例如对于西瓜问题有:
“挑出的西瓜有多少比例是好瓜”——查准率
“所有的好瓜有多少比例被挑出来”——查全率
对于二分类问题,定义混淆矩阵如下:

机器学习模型评估与选择(2)
这时,查准率P可以定义为:

P=TPTP+FP

查准率就是预测结果种的正例的准确率
查全率R可以定义为:
R=TPTP+FN

查全率是真实情况的正例被预测出来的比例

在复杂任务中,查准率和查全率是一对矛盾的度量。

根据学习器的预测结果对样例进行排序,“最可能”是正例的样本排在前面。按这个顺序逐个选择样本作为边界,这个样本之前都作为正例(包括这个样本),这个样本之后都作为反例,计算出当前的查准率P,查全率R,这就是PR图中的一个点。当只包含1个样本作为正例的时候的PR pair是多少(R肯定接近0,P理论上接近1),2个、3个、一直到所有的检测样本都包含。以P为纵轴,R为横轴,就得到PR曲线

机器学习模型评估与选择(2)

如上图所示,A的曲线完全包住C,故学习器A的性能优于C;而A,B曲线有交叉,就不能断定谁优谁劣,只能在具体P或R值下比较。

平衡点(BEP):P=R时的取值

也可以基于平衡点比较学习器性能,此时,A性能>B性能>C性能

因为BEP太简单了,更常用F1度量,F1度量是基于查准率P和查全率R的调和平均定义的。

1F1=12(1P+1R)

故:
F1=2×P×RP+R

在一些应用中,对于查准率和查全率的重视程度是不一样的,这时候引入F1度量的一般形式Fβ

Fβ=(1+β2)×P×Rβ2×P+R

β>1时对查全率有较大影响,β<1对查准率有较大影响。

当我们进行多次训练/测试,或在多个数据集上进行训练/测试,或执行多分类任务,会产生多个二分类混淆矩阵,如何在n个二分类混淆矩阵上综合考察查准率和查全率?

  1. 在各个矩阵上计算出查准率和查全率,再计算平均值,得到宏查准率,宏查全率,和宏F1
  2. 先将各矩阵对应元素进行平均,再计算微查准率,微查全率,和微F1

再看一眼上面的分类结果混淆矩阵图!!!!结合图来理解下面的定义
机器学习模型评估与选择(2)
真正例率: TPR=TPTP+FN

假正例率:FPR=FPFP+TN

ROC曲线:以真正例率TPR为纵轴,假正例率FPR为横轴。给定m+个正例和m个反例,根据学习器预测结果对样例排序,把分类阈值设为最大,即所有样例预测均为反例,此时TPR,FPR都为0,在坐标(0,0)标记一个点,然后将分类阈值依次设为每个样例的预测值。

设前一个标记点为(x,y),当前若为真正例,标记点坐标为(x,y+1m+);当前若为假正例,标记点坐标为(x+1m,y)。(真正例率为纵坐标,来一个真正例,纵坐标加1m+1m+是为了让纵坐标轴在[0,1]范围,同理假正例)

机器学习模型评估与选择(2)

对角线对应于随机猜测的模型。

同PR曲线类似,如果一个ROC曲线包住另一个,则前者性能优于后者,同样,发生交叉,难以判断谁优谁劣。

AUC:ROC曲线下的面积,基于AUC可以比较俩个学习器性能。

AUC可以估算为:

AUC=12i=1m1(xi+1xi)(yi+yi+1)

结合图(b)看,如果x发生变化,就要计算一块新的面积,长为xi+1xi,宽为yi+yi+1的一半,这时y并没有发生变化,yiyi+1相等。


前面不论PR或者ROC都默认不同类型的错误是均等代价的,性能评估是最小化错误率,但是现实中这些错误有可能并不等价,如:错误地把患者诊断为健康人,错误地把健康人诊断为患者。前者代价远远大于后者啊。

以二分类为例,有如下代价矩阵。
机器学习模型评估与选择(2)

在非均等代价下,我们希望最小化总体代价。将第0类作为正类,第1类作为反类。代价敏感的错误率为:
机器学习模型评估与选择(2)

在非均等代价下,ROC曲线不能直接反映学习器的期望总代价,这里使用代价曲线,横轴是正例概率代价:

P(+)cost=p×cost01p×cost01+(1p)×cost10

p是样例为正例的概率
纵轴是归一化代价,就是假反例代价和假正例代价之和归一化,(样例为正例时,但是错分为反例,代价为FNR×p×cost01
costnorm=FNR×p×cost01+FPR×(1p)×cost10p×cost01+(1p)×cost10

其中FPR是假正例率,FNR是假反例率,FNR=1-TPR。

代价曲线绘制:
ROC曲线上的点的坐标为(FPR,TPR),计算出FNR,在代价平面绘制一条从(0,FPR)到(1,FNR)的线段,线段下的面积代表该条件下的期望总体代价。取所有线段的下界,围城的面积即为在所有条件下学习器的期望总代价。

正例概率代价为0时,正例概率p为0,归一化代价就是假正例率;正例概率代价为1时,反例概率(1-p)为0,归一化代价就是假反例率。

机器学习模型评估与选择(2)

相关文章: