在看论文时,经常会看到各种各样的评价指标,很多概念容易混淆和遗忘。这里做了下简单总结,希望可以帮助大家更好地理解论文任务,方便查找。
一、分类任务
分类任务一般有二分类、多分类和多标签分类。
多分类:分类任务中有多个类别,但每个样本有且仅有一个标签.
多标签:一个样本可以有多个标签。
1、混淆矩阵:用n行n列的矩阵来表示,将数据集中的记录按照“真实的类别”和“预测的类别”两个标准进行汇总(以二分类任务为例)
2、准确性(Accuracy):分类正确的样本占总样本个数的比例。缺陷是当不同类别样本的比例非常不均衡时,占比大的类别往往成为影响准确率的最主要因素。
Accuracy
=
n
correct
n
total
=
T
P
+
T
N
T
P
+
T
N
+
F
P
+
F
N
\text { Accuracy }=\frac{n_{\text {correct }}}{n_{\text {total }}}=\frac{T P+T N}{T P+T N+F P+F N}
Accuracy =ntotal ncorrect =TP+TN+FP+FNTP+TN
3、精准率(Precision):又叫查准率,指模型预测为正样本的样本中,预测正确的占比。
Precision
=
T
P
T
P
+
F
P
\text { Precision }=\frac{T P}{T P+F P}
Precision =TP+FPTP
召回率(Recall):又叫查全率,在实际为正的样本中,被预测为正样本的概率。
Recall
=
T
P
T
P
+
F
N
\text { Recall }=\frac{T P}{T P+F N}
Recall =TP+FNTP
F1-Score:又叫F-score或F-measure,可以理解为精确率和召回率的加权/调和平均值两者相对贡献相同。最好值为1,最差值为0。
F1
=
2
∗
precision
∗
recall
precision
+
recall
\text { F1}=\frac{2 * \text { precision } * \text { recall }}{\text { precision }+ \text { recall }}
F1= precision + recall 2∗ precision ∗ recall
【三者的对比】
Precision体现了模型对负样本的区分能力,Precision越高,模型对负样本的区分能力越强;
Recall体现了模型对正样本的识别能力,Recall越高,模型对正样本的识别能力越强。
F1 score是两者的综合,F1 score越高,说明模型越稳健。
4、P-R曲线:是一种不依赖于阈值的评价指标。评价一个模型的好坏,不能仅靠精确率或者召回率,最好构建多组精确率和召回率,绘制出模型的P-R曲线。
在输出为概率分布的分类模型中,如果仅使用准确率、精确率、召回率作为评价指标进行模型对比时,都必须是基于某一个给定阈值的,对于不同的阈值,各模型的指标结果也会有所不同,很难得出一个很置信的结果。
纵轴是精确率,横轴是召回率。P-R曲线上的一个点表示,模型基于某一阈值,判定样本为正样本/负样本,并计算此时的精确率和召回率。通过将阈值从高到低移动,生成最终的曲线(原点附近代表当阈值最大时模型的精确率和召回率)
【判断标准】
如果一个模型的P-R曲线被另一个模型的完全包住,则后者性能优于前者,如A和B优于C;如果两个模型的PR曲线相交,性能无法直接判断,可以根据曲线下方的面积大小来进行比较,但更常用的是平衡点和F1值,如A和B。
AUPR:PR曲线下的面积。
平衡点(BEP):P=R时的取值,如果这个值较大,则说明性能较好。
(Mean Average Precision, mAP):衡量学出的模型在所有类别上的好坏,为所有AP(衡量模型在每个类别上的好坏)的平均值。
5、ROC曲线:也是一种不依赖于阈值的评价指标。纵轴是真正率,横轴是假正率。ROC曲线也需要相应的阈值才可以进行绘制,原理同上的PR曲线,但是向左上凸。
【优点】
当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现类别不平衡(Class Imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。ROC以及AUC可以很好的消除样本类别不平衡对指标结果产生的影响。
真正率(True Postive Rate, TPR):代表分类器预测的正类中的实际正样本,占所有正样本的比例(同 Recall) TPR = T P T P + F N \text { TPR }=\frac{T P}{T P+F N} TPR =TP+FNTP
假正率(False Postive Rate, FPR)::FP / (FP+TN),代表分类器预测的正类中实际负样本,占所有负样本的比例。 FPR = F P F P + T N \text { FPR }=\frac{F P}{F P+T N} FPR =FP+TNFP
绘图过程(现实任务中通常利用有限个测试样例来绘制,无法产生光滑曲线)
step1.给定m个正例子,n个反例子,根据学习器预测得分进行排序;
step2.先把分类阈值设为最大,使得所有例子均预测为反例,此时TPR和FPR均为0,在(0,0)处标记一个点;
step3.再将分类阈值依次设为每个样例的预测值,即依次将每个例子划分为正例。设前一个坐标为(x,y),若当前为真正例,对应标记点为(x,y+1/m),若当前为假正例,则标记点为(x+1/n,y),然后依次连接各点。
ROC曲线图中的四个点
(0,1),即TPR=1,FPR=0,意味着FN=0且FP=0。这是完美的分类器,它将所有的样本都正确分类。
(1,0),即TPR=0,FPR=1,这是最糟糕的分类器,它成功避开了所有的正确答案。
(0,0),即TPR=FPR=0,意味着FP=TP=0,分类器预测所有的样本都为负样本。
(1,1),即TPR=FPR=1,分类器实际上预测所有的样本都为正样本。
(Area under Curve, AUC):ROC曲线下的面积,介于0.1和1之间,值越大越好。
【优点】
作为数值可以直观地评价分类器的好坏,对所有可能的分类阈值的效果进行综合衡量。AUC值是一个概率值,可以理解为随机挑选一个正样本以及一个负样本 ,分类器判定正样本分值高于负样本分值的概率就是AUC值。简言之,AUC值越大,当前的分类算法越有可能将正样本分值高于负样本分值,即能够更好的分类。
【判断标准】
AUC = 1,是完美分类器,采用这个预测模型时,存在至少一个阈值能得出完美预测(绝大多数预测的场合,不存在完美分类器)
0.5 < AUC < 1,优于随机猜测。模型妥善设定阈值的话,能有预测价值。
AUC = 0.5,跟随机猜测一样(例:丢铜板),模型没有预测价值。
AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测。
6、多分类任务精确率:
宏平均(Macro Average)指在计算均值时使每个类别具有相同的权重,结果为每个类别指标的算术平均值。如 1/2*[precision(C=0)+precision(C=1)]
微平均(Micro Average)指计算多分类指标时赋予所有类别的每个样本相同的权重,将所有样本合在一起计算各个指标。如(TP+TN)/(TP+FP+TN+FN)
【前两者对比】
每个类别的样本数量差不多时,两者没有太大差异;如果样本数量差异很大,则注重样本量多的类时使用微平均,注重样本量少的类时使用宏平均。
如果微平均远低于宏平均,那么检查样本量多的类来确定指标表现差的原因;如果宏平均远低于微平均,那么检查样本量少的类来确定指标表现差的原因。
权重平均(Weighted Average):因为宏平均在计算的时候,每个类别赋予的权重相同,但如果存在样本不平衡的情况,就不太公平。可以根据每个类别的样本数量,赋予不同的权重,而权重平均其实就是所有类别的f1加权平均,主要针对F1值。 Weighted Average = 负样本比例 ∗ 负样本 F 1 + 正样本比例 ∗ 正样本 F 1 \text{Weighted Average}=负样本比例*负样本F1 + 正样本比例*正样本F1 Weighted Average=负样本比例∗负样本F1+正样本比例∗正样本F1
二、回归任务
1、均方误差(Mean Square Error, MSE):指预测值与实际值之差平方的期望值。可以评价数据的变化程度。取值越小,模型准确度度越高。
公式如下,其中N表示测量次数,被减数为参数真实值,减数参数预测值。
M
S
E
=
1
m
∑
i
=
1
m
(
y
i
−
y
i
^
)
2
\mathrm{MSE} = \frac{1}{m} \sum_{i=1}^m\left(y_i-\hat{y_i}\right)^2
MSE=m1i=1∑m(yi−yi^)2
2、均方根误差(Root Mean Square Error, RMSE):又叫标准误差,是均方误差的算术平方根。取值越小,模型准确度越高。
该结果与实际数据的数量级一样,表示一组数据的离散程度,对一组测量中的特大或特小误差反映非常敏感,所以能够很好地反映出测量的精密度。和 MAE 相比,RMSE 对大误差样本有更大的惩罚,但它对离群点敏感,其健壮性不如 MAE。
R
M
S
E
=
1
m
∑
i
=
1
m
(
y
i
−
y
^
i
)
2
\mathrm{RMSE} = \sqrt{\frac{1}{m} \sum_{i=1}^m\left(y_i-\hat{y}_i\right)^2}
RMSE=m1i=1∑m(yi−y^i)2
3、(Root Mean Squared Logarithmic Error, RMSLE):在均方根误差相同的情况下,预测值比真实值小这种情况的错误比较大,即对于预测值小这种情况惩罚较大。
越偏离真实值,误差越大,但偏左边和偏右边误差增长幅度不一样,所以对于skew数据有效。
R
M
S
L
E
=
R
M
S
E
y
^
i
\mathrm{RMSLE}=\frac{\mathrm{RMSE}}{\hat{y}_i}
RMSLE=y^iRMSE
4、平均绝对误差(Mean absolute Error, MAE):又叫L1范数损失,通过计算预测值和真实值间距离绝对值的均值,来衡量预测值与真实值之间的距离,能反映预测值误差的实际情况。取值越小,模型准确度度越高。
M
A
E
=
1
m
∑
i
=
1
m
∣
(
y
i
−
y
^
i
)
∣
\mathrm{MAE} = \frac{1}{m} \sum_{i=1}^m\left|\left(y_i-\hat{y}_i\right)\right|
MAE=m1i=1∑m∣(yi−y^i)∣
平均绝对百分比误差(MAPE):MAE的变形,它是一个百分比值。
M
A
P
E
=
100
%
n
∑
i
=
1
n
∣
y
i
^
−
y
i
y
i
∣
\mathrm{M A P E}=\frac{100 \%}{n} \sum_{i=1}^n\left|\frac{\hat{y i}-y i}{y i}\right|
MAPE=n100%i=1∑n
yiyi^−yi
5、R-Squared:除了数据本身的数值大小之外,还希望模型能够捕捉到数据的“规律”,比如数据的分布规律,单调性等。
R-Squared将预测值跟只使用均值的情况下相比。分子是使用 模型 预测产生的误差,也就是模型没有捕获到的信息总量;分母是使用 均值 预测产生的误差,也就是是真实标签所带的信息量。
方差的本质是任意一个值和样本均值的差异,差异越大,这些值所带的信息越多。
用1减去较少的错误除以较多的错误,实际上是衡量了模型拟合住数据的地方,即没有产生错误的相应指标。1 - 模型没有捕获到的信息量占真实标签中所带的信息量的比例。
取值范围为[0,1],结果越靠近 1 模型准确度度越高,结果越靠近 0 直接瞎猜准确度更高,结果为 负数 直接平均值乘以2倍准确度更高。
R
2
=
1
−
S
S
residual
S
S
total
=
1
−
∑
i
(
y
^
i
−
y
i
)
2
∑
i
(
y
ˉ
i
−
y
i
)
2
=
1
−
(
∑
i
(
y
^
i
−
y
i
)
2
)
/
m
(
∑
i
(
y
ˉ
i
−
y
i
)
2
)
/
m
=
1
−
MSE
(
y
^
,
y
)
Var
(
y
)
\mathrm{R^2}=1-\frac{S S_{\text {residual }}}{S S_{\text {total }}}=1-\frac{\sum_i\left(\hat{y}_i-y_i\right)^2}{\sum_i\left(\bar{y}_i-y_i\right)^2}=1-\frac{\left(\sum_i\left(\hat{y}_i-y_i\right)^2\right) / m}{\left(\sum_i\left(\bar{y}_i-y_i\right)^2\right) / m}=1-\frac{\operatorname{MSE}(\hat{y}, y)}{\operatorname{Var}(y)}
R2=1−SStotal SSresidual =1−∑i(yˉi−yi)2∑i(y^i−yi)2=1−(∑i(yˉi−yi)2)/m(∑i(y^i−yi)2)/m=1−Var(y)MSE(y^,y)
三、生成任务
1、BLUE:比较候选译文和参考译文里的 n-gram 的重合程度,重合程度越高就认为译文质量越高。unigram 用于衡量单词翻译的准确性,高阶 n-gram 用于衡量句子翻译的流畅性。通常取 N=1~4,然后加权平均。取值范围是[0,1],0最差,1最好。
1、困惑度(perplexity):越低说明语言模型面对一句话感到困惑的程度越低,越好。可以理解为,如果每个时间步都根据语言模型计算的概率分布随机挑词,那么平均情况下,挑多少个词才能挑到正确的那个。
2、相似度(Corre)
3、ROUGE指标 -> BERTScore、MoverScore