评价指标总结

时间:2022-12-07 23:21:08

本篇博文主要总结下机器学习,深度学习,自然语言处理里面的一些的评价指标及其背后的原理。

机器学习

分类问题

精确率 (Precision)

T P T P + F P

可以这样理解准确率: 分母是我们这边所有预测为真的数量,包括正确预测为真的和错误预测为真的。

召回率 (recall)

T P T P + F N

分母为 t r u e _ d a t a 那边所有为真的样本数量,包括我们预测为真的和我们错误的预测为负的。

故:精确率和召回率的区别在于分母,是我们所有预测为真的数量,还是真实为真的样本数量。

PRC

就是精确率,召回率图像

评价指标总结

在机器学习中,通常我们可以设置阈值(threshhold)来提高精确率或召回率。通过PRC能更好的调节阈值。

准确率(accuarcy)

T P + T N A L L

注:在 样本类别不平衡时,一般不用准确率作为评价标准。

混淆矩阵

评价指标总结

F1值

评价指标总结

当精确率和召回率都很高时,F1值就会变的很高,但是在通常情况下,两者不会同时变得很高,当精确率变高了,则召回率就会降低,反之亦然,这就涉及到一个 p r e c i s i o n / r e c a l l   t r a d e o f f

ROC-AUC

首先了解两个概念

  • TPR:True Positive Rate(真正率)

    T P T P + F N

  • FPR: False Postive Rate(假正率)

    F P F P + T F

评价指标总结

R O C 曲线下方的面积构成的 A U C 。通常越好的模型,其 A U C 越大。

from sklearn import metrics
def aucfun(act,pred):
  fpr, tpr, thresholds = metrics.roc_curve(act, pred, pos_label=1)
  return metrics.auc(fpr, tpr)

回归

RMSE(平方根误差)

评价指标总结

MSE就是除去上面的更号。

MAE(平均绝对误差)

评价指标总结

由上面的公式可知:

  • RMSE类似于欧式距离和 l 2 范数。
  • MAE类似于曼哈顿距离和 l 1 范数。
  • 由此,我们可推得
    评价指标总结
    显然,k越大,其越侧重于 m a x ( v 0 , v 1 , . . . , ) ,越忽略较小值,故相对于MAE,RMSE 对离群点更加敏感。对于有许多离群点的样本,一般采用MAE 的评价标准。

以上部分内容参考自 h a n d s   o n   m a c h i n e   l e a r n i n g   s k l e a r n   a n d   t e n s o r f l o w

自然语言处理

BLEU指标

在机器翻译领域,神经网络翻译出的句子,我们需要对他进行一个定量的评价,也就是给其打分,以判断模型生成的句子好坏,下面举个例子来说明。

N M T   o u t p u t t h e   t h e   t h e   t h e   t h e   t h e   t h e

人类翻译的结果:

  • r e f e r e n c e 1 T h e   c a t   i s   o n   t h e   m a t
  • r e f e r e n c e 2 T h e r e   i s   a   c a t   o n   t h e   m a t

如果以 u n i g r a m 来计算 N M T   o u t p u t 的精确度 p 1 ,则 N M T   o u t p u t 中的7个词全出现在 r e f e r e n c e 中,那 p 1 = 7 / 7 = 1 。很完美?等等,貌似哪里不对。

很明显,这个 N M T   o u t p u t 很不好,我们如果按照上面简单的计算精确度,就会导致生成的句子中会出现大量重复的 t o k e n 。由此产生了改良的版本,我们计算 N M T   o u t p u t 中每个不同的 t o k e n r e f e r e n c e 中出现的次数,例如 t h e r e f e r e n c e 1 中出现2次,在 r e f e r e n c e 2 中出现1次,那么我们认为 t h e 这个 t o k e n r e f e r e n c e 中出现次数为2(选取最高的那个),称作为截断次数。那么 N M T   o u t p u t p 1 = 2 / 7

假设这次的 N M T   o u t p u t T h e   c a t   t h e   c a t   o n   t h e   m a t ,我们来计算下 b i g r a m 的次数和截断次数。

bigram_token count clip_count
the cat 2 1
cat the 1 0
cat on 1 1
on the 1 1
the mat 1 1

上面表格中的 c o u n t 表示该 b i g r a m   t o k e n N M T   o u t p u t 中出现的次数, c l i p   c o u n t 表示该 b i g r a m   t o k e n r e f e r e n c e 中的截断次数。

故其 p 1 = c l i p _ c o u n t / c o u n t

公式化的结果:

p n = n g r a m y ^ c o u n t c l i p ( n g r a m ) n g r a m y ^ c o u n t ( n g r a m )

其中 y ^ 即为上面的 N M T   o u t p u t
但是上面的评价还是有一个缺点,当我们的 N M T   o u t p u t 很简短时, p n 可能变得很大,显然这是不合理的,于是我们加上一个 B P

B P = { 1 i f   N M T _ o u t p u t _ l e n > r e f e r e n _ l e n e x p ( 1 N M T _ o u t p u t _ l e n / r e f e r e n c e _ l e n ) o t h e r w i s e

综上所述:

B l e u = B P e x p ( n = 1 N ( 1 / n ) l o g ( p n ) )

这样我们就能计算 B l e u 1 B l e u 2 B l e u 3....

Rouge指标

Rouge-N

评价指标总结

分母表示所有 r e f e r e n c e 中所有出现的 n g r a m 个数。分子表示所有 r e f e r e n c e N M T   o u p u t 共现 n g r a m 个数。嗯这是基于召回率的方式计算。就这么简单。

Rouge-L

评价指标总结

X 是参考译文, Y 是待评测译文, m , n 表示 X , Y 序列长度。 L C S ( X , Y ) 表示最长公共子序列长度。