机器学习常用的性能度量

机器学习常用的性能度量

在预测任务中,给定样例集D={(x1,y1),(x2,y2),,(xi,yi),,(xm,ym)}D=\lbrace (x_1,y_1),(x_2, y_2),\cdots,(x_i,y_i),\cdots,(x_m, y_m)\rbrace, 其中yiy_i是示例xix_i的真是标记. 要评估学习器ff的性能,就要把学习器的预测结果f(x)f(x)与真实标记yy进行比较

回归问题

回归中常用的指标是均方误差(Mean Squared Error)
E(f;D)=1mi=1m(f(xi)yi)2 \begin{aligned} E(f;D)=\frac{1}{m}\sum\limits_{i=1}^{m}(f(x_i)-y_i)^2 \end{aligned}

分类问题

  • 错误率和精度

这是分类任务中最常用的两种性能度量,即适用于二分类任务,也适合于多分类任务.错误率是分类错误的样本数占样本总数的比列,对样例集DD,分类错误率定义为:
E(f;D)=1mi1mI(f(xi)yi) \begin{aligned} E(f;D)=\frac{1}{m}\sum\limits_{i-1}^{m}\mathbb{I}(f(x_i)\neq y_i) \end{aligned}
精度则是分类正确的样本数占样本总数的比例.精度的定义为:
acc(f;D)=1mi=1mI(f(xi)=yi)=1E(f;D) \begin{aligned} acc(f;D)&=\frac{1}{m}\sum\limits_{i=1}^{m}\mathbb{I}(f(x_i)= y_i) \\ &=1-E(f;D) \end{aligned}

  • 查准率 ,查全率和F1F1

对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为 **真正例(true positive),假正例(false positive),真反例(true negative),假反例(false negative)**四种情形

机器学习常用的性能度量

**查准率(准确率,precision)**定义:
P=TPTP+FP \begin{aligned} P=\frac{TP}{TP+FP} \end{aligned}
**查全率(召回率,recall)**定义
R=TPTP+FN \begin{aligned} R=\frac{TP}{TP+FN} \end{aligned}
查准率和查全率是一对矛盾的度量.一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低.

F1F1度量
1F1=12(1P+1R)F1=2×P×RP+R=2×TP2TP+FP+FN \begin{aligned} \frac{1}{F1} &= \frac{1}{2}(\frac{1}{P}+\frac{1}{R}) \\ F1&=\frac{2\times P \times R}{P+R}=\frac{2\times TP}{2TP+FP+FN} \end{aligned}
F1F1度量分母包括TP,FP,FNTP,FP,FN相当于将查准率和查全率做了个综合.(其实F1F1PPRR的调和平均数)

FβF_{\beta}度量

在一些应用中对查全率和查准率的要求不一样,这就要对两者加一定的权重
1Fβ=11+β2(1P+β2R)Fβ=(1+β2)×P×R(β2×P)+R \begin{aligned} \frac{1}{F_{\beta}}&=\frac{1}{1+{\beta}^2}(\frac{1}{P}+\frac{\beta^2}{R}) \\ F_{\beta}&=\frac{(1+{\beta^2})\times P \times R}{(\beta^2\times P)+R} \end{aligned}
β=1\beta=1时退化为标准的F1F1;β>1\beta>1时查全率有更大影响;β<1\beta<1时查准率有更大影响

  • PRPR曲线

在机器学习中分类器往往直接输出的不是类别标号,而是属于,某个类别的概率值,对概率值通过不同的阈值进行筛选,查准率和查全率也会一直变化.PRPR曲线是以查准率为纵轴,查全率为横轴.如下图所示

机器学习常用的性能度量

其中,BB曲线围成的面积比CC曲线围成的大,所以BB曲线的效果比CC好.对于AABB可以通过:1.1.比较AABB的面积大小,在一定程度上表征了模型的优劣,但是这个值不容易估算;2.2.计算F1F1;3.3.计算FβF_{\beta}. 对于平衡点(BEP)(BEP)表示的是P=RP=R的点.

  • ROCROCAUCAUC

ROCROC曲线以FPRFPR(假正例率)作横轴,用TPRTPR(真正例率)作纵轴,其中:
FPR=FPTN+FPTPR=TPTP+FN \begin{aligned} FPR &= \frac{FP}{TN+FP} \\ TPR &= \frac{TP}{TP+FN} \end{aligned}
其也是根据概率值进行筛选,计算FPRFPRTPRTPR得到ROCROC曲线,而AUCAUC则是ROCROC曲线围成的面积,如下图所示

机器学习常用的性能度量

完美的预测是一个在左上角的点,在 ROCROC 空间座标$ (0,1)点,x=0 代表着没有伪阳性,y=1 $代表着没有伪阴性(所有的阳性都是真阳性);也就是说,不管分类器输出结果是阳性或阴性,都是100100%正确。

对于AOCAOC曲线

  1. AUC=1AUC = 1,是完美分类器,分类100% 正确。

  2. 0.5<AUC<10.5 < AUC < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。

  3. AUC=0.5AUC = 0.5,跟随机猜测一样,模型没有预测价值。

  4. AUC<0.5AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测。

  • PRPR曲线和ROCROC曲线的关系

PRPR曲线和ROCROC曲线都能评价分类器的性能。如果分类器aaPRPR曲线或ROCROC曲线包围了分类器bb对应的曲线,那么分类器aa的性能好于分类器bb的性能。

PRPR曲线和ROCROC曲线有什么联系和不同:

相同点:

  1. 首先从定义上PRPR曲线的RR值是等于ROCROC曲线中的TPRTPR值。
  2. 都是用来评价分类器的性能的。

不同点:

  1. ROCROC曲线由于兼顾正例与负例,所以适用于评估分类器的整体性能(通常是会计算AUCAUC,表示模型的rrankrank性能),相比而言PRPR曲线完全聚焦于正例。
  2. 如果有多份数据且存在不同的类别分布。比如信用卡欺诈问题中每个月正例和负例的比例可能都不相同,这时候如果只想单纯地比较分类器的性能且剔除类别分布改变的影响,则ROCROC曲线比较适合,因为类别分布改变可能使得PRPR曲线发生变化时好时坏,这种时候难以进行模型比较;反之,如果想测试不同类别分布下对分类器的性能的影响,则PRPR曲线比较适合。
  3. 如果想要评估在相同的类别分布下正例的预测情况,则宜选PRPR曲线。类别不平衡问题中,ROCROC曲线通常会给出一个乐观的效果估计,所以大部分时候还是PRPR曲线更好。

例子

Inst Class Score Inst Class Score
1 p 0.9 11 p 0.4
2 p 0.8 12 n 0.39
3 n 0.7 13 p 0.38
4 p 0.6 14 n 0.37
5 p 0.55 15 n 0.36
6 p 0.54 16 n 0.35
7 n 0.53 17 p 0.34
8 n 0.52 18 n 0.33
9 p 0.51 19 p 0.30
10 n 0.505 20 n 0.1

如上表:

  • PRPR曲线

真实情况正例反例各有1010个。

先用分数(scorescore):0.90.9作为阈值(大于等于11为正例,小于11为反例),此时TP=1FP=0FN=9TP=1,FP=0,FN=9,故P=1R=0.1P=1,R=0.1
0.80.8作为阈值,P=1R=0.2P=1,R=0.2
0.70.7作为阈值,P=0.67R=0.2P=0.67,R=0.2
0.60.6作为阈值,P=0.75R=0.3P=0.75,R=0.3
以此类推。。。

最后得到一系列PRP、R值序列,就画出PRPR曲线(示意图,不对应上面数据):

机器学习常用的性能度量

PRPR 曲线越靠近右上角性能越好。

  • ROCROC曲线和AUCAUC

同样用上面的数据,
0.90.9作为阈值,此时TP=1FP=0FN=9TN=10TP=1,FP=0,FN=9,TN=10,TPR=0.1FPR=0TPR=0.1,FPR=0。
0.80.8作为阈值,此时TP=2FP=0FN=8TN=10TP=2,FP=0,FN=8,TN=10,TPR=0.2FPR=0TPR=0.2,FPR=0。
0.70.7作为阈值,此时TP=2FP=1FN=8TN=9TP=2,FP=1,FN=8,TN=9,TPR=0.2FPR=0.1TPR=0.2,FPR=0.1。
用0.6作为阈值,此时TP=3FP=1FN=7TN=9TP=3,FP=1,FN=7,TN=9,TPR=0.3FPR=0.1TPR=0.3,FPR=0.1。
以此类推。。。
最后的ROCROC曲线如下图:

机器学习常用的性能度量

AUCAUC的值就是ROCROC曲线下方围成区域的面积大小。

参考书籍:

周志华<机器学习>

参考博客:

https://blog.****.net/lk3030/article/details/85050408

https://blog.****.net/teminusign/article/details/51982877

https://wulc.me/2018/06/16/ROC%20%E6%9B%B2%E7%BA%BF%E4%B8%8E%20PR%20%E6%9B%B2%E7%BA%BF/