分类任务,回归任务以及排序任务指标评估汇总:F1分值,ROC,AUC,MAE, MSE,MRR, NDCG,RC

在完成一个模型的训练时,通常我们会离线测评模型的预测效果,下面分别按照分类任务,回归任务以及排序任务对应的评估方法进行一个汇总。

1 分类任务 (Classification)

假设一个model预测的结果如下:
在这里插入图片描述

那么怎么评估这个model的效果呢?
首先来看几个基本指标:

  • TP ( true positive):预测正确的正样本 (预测正确)
  • TN ( true negative) : 预测正确的负样本 (预测正确)
  • FP (false positive): 预测错误的正样本 (预测错误)
  • FN (false negative): 预测错误的负样本 (预测错误)

那么我们先来看下,对于每个类别,上图的TP (true positive) 是对角线的绿色格子:
在这里插入图片描述
对于A类,TN (true negative) 如下蓝色格子区域:
在这里插入图片描述
对于A类,FP (false positive) 如下红色格子区域
在这里插入图片描述
对于A类,FN (false negative) 如下橙色格子区域
在这里插入图片描述

1.1 准确率 (Accuracy)

对上面几个基本的指标计算了解后,我们来看下,什么叫准确率。
准确率就是正确预测的样本除以总样本:
A c c = c o r r e c t s u m ( s a m p l e s ) = 9 + 15 + 24 + 15 80 Acc = \frac{correct}{sum(samples)}=\frac{9+15+24+15}{80} Acc=sum(samples)correct=809+15+24+15
准确率在各类样本较平衡的时候,对模型效果的衡量较客观,若类别样本很不均衡,则测出来的准确率指标不能衡量少样本的类别预测效果

1.2 精确率 (Precision)

对于上面的A类计算结果如下:
p r e c i s i o n = T P T P + F P = 9 9 + 6 precision= \frac{TP}{TP+FP}=\frac{9}{9+6} precision=TP+FPTP=9+69

1.3 召回率 (Recall)

对于上面的A类计算结果如下:
r e c a l l = T P T P + F N = 9 9 + 1 recall= \frac{TP}{TP+FN}=\frac{9}{9+1} recall=TP+FNTP=9+19

1.4 F1分值

精确率和召回率整体来说是相互制约的,在实际应用中,如果很在意模型预测的精准度,则需要提高精确率,如果希望尽可能的多召回,则可以提高召回率。而F1分值是精确率和召回率的调和平均数,公式如下:

F 1 = 2 1 r e c a l l + 1 p r e c i s i o n = 2 ∗ p r e c i s i o n ∗ r e c a l l p r e c i s i o n + r e c a l l F_1 = \frac{2}{\frac{1}{recall}+\frac{1}{precision}} =2*\frac{precision*recall}{precision+recall} F1=recall1+precision12=2precision+recallprecisionrecall

从上面公式可以看出,F1分值越高,则recall和precision都相对越高,只要有一个相对较小,比如recall=0.1, precision=1,则F1=0.18, 算出来的F1分值都较低,所以F1分值较好的平衡了精确率和召回率

1.5 ROC曲线( Receiver Operating Characteristic)

ROC曲线描述了不同阈值下的二分类器的效果,坐标轴的纵轴为预测正确的正样本率,表示为: T P R   ( True Positive Rate ) = T P T P + F N TPR \text { }(\text{True Positive Rate}) = \frac{TP}{TP+FN} TPR (True Positive Rate)=TP+FNTP
其中横轴为预测错误的负样本率,表示为: F P R   ( False Positive Rate ) = F P F P + T N FPR \text{ }(\text{False Positive Rate}) = \frac{FP}{FP+TN} FPR (False Positive Rate)=FP+TNFP
从上面两个公式可以看出,理想的分类器应该是TPR越大,FPR越小,最好的是坐标轴的(0,1)点,此时说明分类器全部预测正确。 为什么说ROC曲线对样本不平衡问题不敏感,因为ROC曲线横轴FPR计算的是负样本预测错误的概率,和正样本的多少无关,所以不平衡不影响ROC曲线横轴值的计算。
接下来让我们看看曲线的点都是怎么计算出来的,为什么说会根据阈值threshold变化,如下表所示:

真实样本y标签预测的分值0.0阈值y0.2阈值y0.5阈值y1阈值y
10.81110
00.961110
10.41100
10.11000
00.151000
10.71110

从上表中可以看出,会根据阈值的变化,输出不同的label标签,则相应的指标计算都会发生变化,计算TPR和FPR如下:

不同的阈值TPRFPR
0.0 4 4 + 0 = 1.0 \frac{4}{4+0}=1.0 4+04=1.0 2 2 + 0 = 1.0 \frac{2}{2+0}=1.0 2+02=1.0
0.2 3 3 + 1 = 0.75 \frac{3}{3+1}=0.75 3+13=0.75 1 1 + 1 = 0.5 \frac{1}{1+1}=0.5 1+11=0.5
0.5 2 2 + 2 = 0.5 \frac{2}{2+2}=0.5 2+22=0.5 1 1 + 1 = 0.5 \frac{1}{1+1}=0.5 1+11=0.5
1 0 0 + 4 = 0 \frac{0}{0+4}=0 0+40=0 0 0 + 2 = 1 \frac{0}{0+2}=1 0+20=1

所以根据不同的阈值,( FPR,TPR)会在坐标轴上的不同的点,(1,0)和(0,1)分别代表了模型在某个特定的阈值情况下,全部预测样本为负样本和全部预测样本为正样本。根据不同阈值得到点描述的图像可能形状如下:

在这里插入图片描述

1.6 AUC曲线(Area Under the Curve)

理解了ROC曲线,那么我们来看下,什么是AUC。AUC是ROC曲线构成的面积,如下图所示,红色和蓝色曲线分别代表了两个模型的ROC曲线,根据ROC曲线构成的面积大小,也就是AUC,红线曲线AUC要比蓝色曲线AUC大,指标效果会更好,从图的点的含义也可以理解,相同的横轴坐标,纵坐标取值越大,说明FPR一样,TPR越大,模型当然表现越好。
在这里插入图片描述
其中绿色虚线形成的三角形面积就是 1 2 \frac{1}{2} 21,一般随机模型效果差不多AUC可以到达0.5所以我们评估的模型AUC一般是在0.5~1之间,越大效果越好。

2 回归任务 (Regression)

预测的labe是数值类型,则评估指标一般通过数值差距进行度量,主要通过均方误差(MSE)和绝对误差(MSE)进行度量。

2.1 MAE误差

根据真实label值和模型预测的值进行绝对误差评估,值越小,说明模型预测越精准,MAE的数学表达式如下:
M A E = 1 n ∑ j = 1 n ∣ y i − y ^ i ∣ MAE=\frac{1}{n}\sum_{j=1}^n\begin{vmatrix} y_i-\hat{y}_i \end{vmatrix} MAE=n1j=1nyiy^i

2.2 MSE误差

均方误差一样也是评估两个数值的差距,数学表达式如下:
M S E = 1 N ∑ i = 1 N ( y i − y ^ i ) 2 MSE = \frac{1}{N}\sum_{i=1}^N( y_i-\hat{y}_i)^2 MSE=N1i=1N(yiy^i)2

3 排序任务 (Rank)

在排序任务中,模型对候选集进行打分,得到一个排序结果,再与真实的排序结果进行对比,通过一些指标来衡量排序模型的预测效果。

3.1 Mean Reciprocal Rank (MRR)

对于给定query q q q以及与该query相关的文本 D = { d 1 , d 2 , d 3 , d 4 , d 5 } D=\{d_1,d_2,d_3,d_4,d_5\} D={d1,d2,d3,d4,d5},假设文本与query的相关性程度依次递减已经排好序,若排序模型预测的顺序是 r a n k = { d 2 , d 3 , d 1 , d 5 , d 4 } rank=\{d_2,d_3,d_1,d_5,d_4\} rank={d2,d3,d1,d5,d4},则与该query第一相关的文本 d 1 d_1 d1所在的排序位置记为 r ( q ) = 3 r(q)=3 r(q)=3,则对于这个query的MRR指标计算结果为:
MRR = 1 r ( q ) = 1 3 \text{MRR} = \frac{1}{r(q)} =\frac{1}{3} MRR=r(q)1=31
该指标对应的值越大越好,且取值范围为 [ 1 N , 1 ] [\frac{1}{N},1] [N1,1],其中 N N N表示的是排序的总文本数量。

3.2 Mean Average Precision (MAP)

MAP是排序模型效果评估的另外一个评价指标,首先我们定义在位置 k k k的精确率记为: P @ k P@k P@k,具体计算结果为:

P @ k ( q ) = # { relevant documents in the top k positions } k P@k(q) = \frac{\#\{\text{relevant documents in the top k positions}\}}{k} P@k(q)=k#{relevant documents in the top k positions}
则平均精确率AP定义如下:
A P ( q ) = ∑ k = 1 m P @ k ( q ) ⋅ l k # { relevant documents} AP(q) = \frac{\sum_{k=1}^m P@k(q) \cdot l_k}{\#\{\text{relevant documents\}}} AP(q)=#{relevant documents}k=1mP@k(q)lk
其中 m m m表示的是query q q q对应的所有文本数量, l k l_k lk取值为{0,1},判断在第 k k k个位置上的文本是否与query相关,相关为1,不相关为0。则最后的MAP指标表示所有query的平均AP值
MAP = 1 m ∑ i m A P ( q i ) \text{MAP} = \frac{1}{m}\sum_i^m AP(q_i) MAP=m1imAP(qi)

3.3 Normalized Discounted Cumulative Gain (NDCG)

前面的测量标准主要基于是否相关的0-1 binary决策,而DCG可以对包含多个相关性程度的类别进行测评,同时将位置衰减因子也定义到了计算公式里,假设对于query q q q,排序模型预测的相关性结果从高到低排序后记为 π \pi π,则在位置k的DCG指标定义如下:
D C G @ k ( q ) = ∑ r = 1 k G ( π ( r ) ) η ( r ) DCG@k(q) = \sum_{r=1}^kG(\pi(r))\eta(r) DCG@k(q)=r=1kG(π(r))η(r)
其中 π ( r ) \pi(r) π(r)表示的是排序 π \pi π整个list在位置为 r r r的原始文档相关性等级, G ( ⋅ ) G(\cdot) G()是对文档相关性计算出的新的等级分值,一般计算函数如下:
G ( π ( r ) ) = 2 π ( r ) − 1 G(\pi(r)) = 2^{\pi(r)} -1 G(π(r))=2π(r)1
其中 η ( r ) \eta(r) η(r)表示的是位置衰减因子,通常计算公式如下:
η ( r ) = 1 log ⁡ 2 ( r + 1 ) \eta(r) = \frac{1}{\log_2(r+1)} η(r)=log2(r+1)1
所以从DCG公式可以看出,若相关性等级越高的文档排序越靠后,则DCG分值越低,且将位置信息融入到了计算公式里。则归一化的Normalized DCG (NDCG) 指标计算公式如下:
N D C G @ k ( q ) = 1 Z k ∑ r = 1 k G ( π ( r ) ) η ( r ) NDCG@k(q) = \frac{1}{Z_k}\sum_{r=1}^kG(\pi(r))\eta(r) NDCG@k(q)=Zk1r=1kG(π(r))η(r)
其中 Z k Z_k Zk是归一化因子,其计算值为DCG@k的最大值,也就是query对应的理想排序list (相关性等级越高,排在越靠前),可以看出NDCG@k(q)的取值范围为[0,1]。

3.4 Rank Correlation (RC)

RC指标是衡量模型预测的一个排序list π \pi π与groudtruth标准排序list π l \pi_l πl之间的相关性。用带权重的Kendall等级相关系数作为评估准则,评估两个排序list中两两不一样的pairwise排序一致性情况,计算公式定义如下:
R C = ∑ u < v w u , v ( 1 + s g n ( ( π ( u ) − π ( v ) ) ( π l ( u ) − π l ( v ) ) ) ) 2 ∑ u < v w u , v RC = \frac{\sum_{u<v}w_{u,v}(1+sgn((\pi(u) - \pi(v))(\pi_l(u) - \pi_l(v))))}{2\sum_{u<v}w_{u,v}} RC=2u<vwu,vu<vwu,v(1+sgn((π(u)π(v))(πl(u)πl(v))))
其中sgn是符合函数,定义如下:
s g n = { 1 x > 0 0 x = 0 − 1 x < 0 sgn=\begin{cases} 1\quad x>0 \\ 0 \quad x=0 \\ -1 \quad x<0 \end{cases} sgn=1x>00x=01x<0
从上述公式可以看出,模型预测的排序list中两两pair对相对排序顺序与真实groudtruth中两个pair相对排序顺序一致的pair对越多,则RC计算的分值越大。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值