首页 > 其他分享 >【大模型】评测指标解析(准确率/精确率/召回率/F1分数/rouge/Perplexity/BLEU)

【大模型】评测指标解析(准确率/精确率/召回率/F1分数/rouge/Perplexity/BLEU)

时间:2024-11-13 16:43:06浏览次数:1  
标签:BLEU F1 模型 ROUGE 40 cat gram rouge Perplexity

准确率(Accuracy)

准确率(Accuracy)是用来评估分类模型性能的一个重要指标。它表示模型正确预测的样本数占总样本数的比例。

准确率的计算公式为:

Accuracy=(TP+TN)/(TP+TN+FP+FN)

其中:

  • TP(True Positives):真正例,模型正确预测为正类的样本数。
    
    TN(True Negatives):真负例,模型正确预测为负类的样本数。
    
    FP(False Positives):假正例,模型错误预测为正类的样本数。
    
    FN(False Negatives):假负例,模型错误预测为负类的样本数。

     

举个例子来说明,假设有一个医生在诊断一种疾病时使用了某种检测方法。我们可以将这个例子对应到分类模型的术语中:

  • 真正类(TP):实际患病的人被检测为阳性。

  • 真负类(TN):实际健康的人被检测为阴性。

  • 假正类(FP):实际健康的人被错误地检测为阳性。

  • 假负类(FN):实际患病的人被错误地检测为阴性。

现在假设有100个人参加了检查,其中50人实际患病,50人实际健康。检测结果如下:

  • 40名患病者被检测为阳性(TP)

  • 10名患病者被错误地检测为阴性(FN)

  • 45名健康者被检测为阴性(TN)

  • 5名健康者被错误地检测为阳性(FP)

将数值代入计算:
Accuracy=(40+45)/(40+45+5+10)=85/100=0.85
因此,这种检测方法的准确率为85%,也就是说在所有被检测的人中,有85%的人被正确诊断。准确率反映了模型或检测方法在所有样本中正确预测的比例。它是一个直观的性能指标,但在某些情况下可能会产生偏差, 需要结合其他指标一起评估模型的性能。

精确率(Precision)

精确率(Precision)是一个重要的性能指标,用于衡量分类模型在预测为正类时的准确性。它表示在所有被模型预测为正类的样本中,实际为正类的比例。
精确率的计算公式为:

Precision=TP/(TP+FP)

 用前面的例子来表示:

  • 40名患病者被检测为阳性-----真正类 TP

  • 5名健康者被错误地检测为阳性-----假正类 FP

根据精确率公式:
Precision=40/(40+5)≈0.889
因此,这种检测方法的精确率约为88.89%。这表示在所有被检测为阳性的样本中,有88.89%实际上是患病的。精确率是评估模型性能的重要指标,尤其在类别不平衡的情况下尤为重要。它帮助我们理解模型在预测正类时的准确性,能够有效反映出模型的可靠性。

召回率(Recall)

召回率(Recall)是一个重要的性能指标,用于衡量分类模型在实际为正类的样本中,预测正确的比例
召回率的计算公式为:

Recall=TP/(TP+FN)

用前面的例子来表示:

  • 40名患病者被检测为阳性----真正类 TP

  • 10名患病者被错误地检测为阴性----假负类 FN

根据召回率计算公式:
Recall=40/(40+10)=0.8
因此,这种检测方法的召回率为80%。这表示在所有实际患病的样本中,有80%被正确检测为阳性。召回率反映了模型在实际正类样本中的覆盖程度。它与精确率不同,侧重于模型在实际正类样本中的表现。在某些应用场景中,如医疗诊断,召回率可能比精确率更加重要,因为我们希望尽可能多地识别出实际患病的人。召回率的分数越高越好。

F1分数(F1 Score)

F1分数是一个重要的性能指标,用于综合评估分类模型的精确率(Precision)和召回率(Recall)。它特别适用于类别不平衡的数据集,因为它能够平衡这两个指标的影响
F1分数的计算公式为:

F1=2×(Precision×Recall)/(Precision+Recall)

在上面的例子中,Precision=40/(40+5);Recall=40/(40+10),我们根据F1 score的计算公式可以知道, F1= 2*
(40/45)*(40/50)/(40/45+40/50)=84.21%
F1分数是一个综合性指标,能够有效反映模型在处理类别不平衡问题时的性能。它在许多领域(如医疗诊断、欺诈检测等)中非常重要,因为这些领域通常对假阳性和假阴性的影响有不同的要求。F1分数越高越好

ROUGE

ROUGE(Recall-Oriented Understudy for Gisting Evaluation)是一种用于评估自动文本摘要和机器翻译质量的指标。它通过比较自动生成的摘要与参考摘要(通常是人工生成的)之间的相似度来进行评估。
ROUGE的主要类型

  • ROUGE-N:计算生成摘要与参考摘要之间的n-gram重叠情况。

  • ROUGE-L:基于最长公共子序列(LCS)来评估生成摘要与参考摘要的匹配程度。

  • ROUGE-W:考虑词序权重的n-gram评估。

  • ROUGE-S:评估生成的句子与参考摘要之间的匹配程度。

ROUGE-N的计算公式为:

 

举个例子,假设我们有以下自动生成的摘要和参考摘要:

  • 自动摘要:the cat was found under the bed

  • 参考摘要:the cat was under the bed

计算ROUGE-1

  • 1-gram提取:

    • 自动摘要的1-gram:thecatwasfoundunderthebed

    • 参考摘要的1-gram:thecatwasunderthebed

 

  • 重叠的1-gram数量:

    • 重叠的1-gram:thecatwasunderthebed(共6个)

  • 计算ROUGE-1:

    • 参考摘要的1-gram总数:6

    • ROUGE-1计算:

ROUGE−1=6/6=1.0
这表示自动摘要与参考摘要之间的1-gram重叠率为100%。


计算ROUGE-2

  • 2-gram提取:

    • 自动摘要的2-gram:the catcat waswas foundfound underunder thethe bed

    • 参考摘要的2-gram:the catcat waswas underunder thethe bed

  • 重叠的2-gram数量:

    • 重叠的2-gram:the catcat wasunder thethe bed(共4个)

  • 计算ROUGE-2:

    • 参考摘要的2-gram总数:5

    • ROUGE-2计算:

ROUGE−2=4/5=0.8
这表示自动摘要与参考摘要之间的2-gram重叠率为80%。
ROUGE-1和ROUGE-2是最常用的评估指标.

Perplexity

Perplexity(困惑度)是自然语言处理(NLP)中一种常用的评估语言模型性能的指标。它衡量了语言模型在预测文本序列时的“困惑”程度,反映了模型对下一个词的预测能力
Perflexity计算公式
Perplexity 可以被定义为一个序列的平均负对数似然的指数形式。具体而言,对于给定的词序列 w1,w2,…,wNw1,w2,…,wN,其计算公式为:

 其中:

  • NN 是序列中的词数。

  • P(wi∣w1,w2,…,wi−1)P(wiw1,w2,…,wi−1) 是模型在给定前面词的情况下预测第 ii 个词的概率。

直观理解
Perplexity 可以被视为模型在预测下一个词时的“惊讶”程度。较低的困惑度表示模型对文本的预测更有信心,而较高的困惑度则表示模型在预测时更加困惑。例如,如果一个语言模型的困惑度为 10,这意味着模型在每个词的预测中,平均需要从 10 个可能的选择中进行选择。
假设我们有一个简单的语言模型,它在给定上下文的情况下预测下一个词的概率。对于句子“the cat sat on the”,模型可能会对下一个词的预测概率如下:

  • P( mat ∣ the cat sat on the )=0.6P( mat ∣ the cat sat on the )=0.6

  • P( floor ∣ the cat sat on the )=0.3P( floor ∣ the cat sat on the )=0.3

  • P( table ∣ the cat sat on the )=0.1P( table ∣ the cat sat on the )=0.1

如果我们计算这个句子的困惑度,首先需要计算每个词的对数概率,然后取平均值并进行指数运算。假设我们只考虑句子的最后一个词“mat”,则:
PPL=exp⁡(−log⁡(0.6))≈1.51PPL=exp(−log(0.6))≈1.51
这个困惑度值表示模型对预测的信心程度,Perplexity的值越小,表明模型对词的预测更有信心。

BLEU

BLEU(Bilingual Evaluation Understudy)是一种用于评估机器翻译质量的指标。它通过比较机器翻译输出与一个或多个参考翻译之间的n-gram重叠来进行评分。
定义
BLEU的核心思想是判断机器翻译的输出与人类翻译之间的相似程度。该指标主要通过以下几个步骤进行计算:

  • n-gram匹配:计算候选翻译(机器翻译输出)与参考翻译之间的n-gram重叠。常见的n-gram包括:

    • BLEU-1:计算unigram(单词级别)的重叠。

    • BLEU-2:计算bigram(词组级别)的重叠。

    • BLEU-3和BLEU-4:分别计算三元组和四元组的重叠。

  • 修改后的精确率:BLEU使用修改后的n-gram精确率来避免重复计算相同词的多次匹配。具体而言,候选翻译中每个n-gram的计数被限制为在参考翻译中出现的最大次数。

  • 长度惩罚:为了避免机器翻译系统生成过短的翻译,BLEU引入了长度惩罚(Brevity Penalty),确保翻译的长度与参考翻译相对一致。

计算公式
BLEU的计算公式为:

BLEU=BP⋅exp⁡(∑n=1Nwnlog⁡pn)BLEU=BP⋅exp(n=1∑Nwnlogpn)

其中:

  • BPBP 是长度惩罚因子。

  • NN 是n-gram的最大长度(通常取4)。

  • wnwn 是权重系数(通常取 1NN1)。

  • pnpn 是n-gram的精确率。

直观理解
假设我们有以下参考翻译和机器翻译输出:

  • 参考翻译:The cat is on the mat.

  • 机器翻译:The cat sat on the mat.

  • 提取n-gram:

    • 参考翻译的unigram:[The, cat, is, on, the, mat]

    • 机器翻译的unigram:[The, cat, sat, on, the, mat]

  • 计算匹配的unigram数量:

    • 匹配的unigram:[The, cat, on, the, mat](共5个匹配)。

  • 计算unigram精确率:

    • 机器翻译的unigram总数:6

    • p1=56≈0.8333p1=65≈0.8333 

  • 计算长度惩罚:

    • 假设机器翻译长度为6,参考翻译长度为6,则 BP=1.0BP=1.0。

  • 计算BLEU分数:

    • 最终BLEU分数为:

BLEU=1.0⋅exp⁡(log⁡(0.8333))≈0.8333BLEU=1.0⋅exp(log(0.8333))≈0.8333

BLEU分数越高,翻译质量越好

 

标签:BLEU,F1,模型,ROUGE,40,cat,gram,rouge,Perplexity
From: https://www.cnblogs.com/syw20170419/p/18544290

相关文章

  • [题解]CF1407D Discrete Centrifugal Jumps
    思路注意到第二个条件和第三个条件本质相似,可以用相同的维护方式处理,因此这个只讨论第二个条件的维护方式。定义\(dp_i\)表示走到\(i\)的最少步数。第一个条件的转移显然为\(dp_i\leftarrowdp_{i-1}\)。对于第二个条件,\(i\)能向\(j\)转移,当且仅当\(h_{i+1\sim......
  • [CF1935E] Distance Learning Courses in MAC 题解
    [CF1935E]DistanceLearningCoursesinMAC难度正常的一道题。首先我们发现“挑选若干个区间”就是一句废话,因为按位或只会贡献答案而不会减小答案。所以我们需要在\([L,R]\)的每个区间都挑一个数,使得最终的按位或最大。想办法让尽可能多的二进制位都变成\(1\),且越是高......
  • CF1006
    前言失而复得最开心力!!!这场AK力(可能是因为第一条)题目难度:红黄黄绿绿蓝正文A偶数-1,奇数不变B直接排个序,取前K大的就行C直接用双指针扫一遍即可D发现上下对面四个是绑定的,所以只需让上下左右四个有两对一样的即可E发现(由树剖得)一颗子树的dfn序是连续的于是就记一下d......
  • CF1920
    SC真的在认真写喵,关注Sugar_Cube喵。()A没价值,略去。B给定一个可重集合,A选择至多k个数删除,然后B在剩下的数选至多x个取相反数。A想要和尽量大,B想要和尽量下,求两者都使用最佳决策的情况下的结果。\(n\le10^5\)假如确定了删除哪些数,B肯定是尽量取反大数,故答案是......
  • Educational Codeforces Round 80 (CF1288)
    EducationalCodeforcesRound80(CF1288)A.Deadline题意给出正整数\(n,d\),求不等式\(x+\lceil\frac{d}{x+1}\rceil\len\)是否有非负整数解。思路先不考虑上取整,\[x+\frac{d}{x+1}=x+1+\frac{d}{x+1}-1\ge2\sqrtd-1\]当且仅当\(x+1=\frac{d}{x+1}\)即\(......
  • 「杂题乱刷2」CF1288E
    题目链接CF1288EMessengerSimulator解题思路发现向前移的部分普通维护比较困难,因此我们考虑通过某种方式来维护这个东西。考虑建立\(m\)个虚点来维护,每次询问都将实点移至虚点去。这里求答案我们需要支持单点加,区间求和,可以用树状数组轻松维护。参考代码#include<bits/s......
  • 「杂题乱刷2」CF1219G
    题目链接CF1219GHarvester解题思路就是个嗯分讨题。发现最终选择的方案总共就以下五种情况:选\(4\)行\(0\)列。选\(3\)行\(1\)列。选\(2\)行\(2\)列。选\(1\)行\(3\)列。选\(0\)行\(4\)列。对于第一,五种情况,直接取每行或每列的前四大值......
  • CF1821
    建议结合独立思考使用本题解。A没什么价值略去。B有一个序列\(a\),通过把它的一个子区间进行升序排序生成了\(b\)。现在给出\(a,b\),求出可以通过该操作使\(a\)变为\(b\)的最长子区间的左右端点,输出任意一个。\(n\le2\times10^5\)如果存在一个位置,使得\(a_{p}\neq......
  • 【题解】CF1993【EF】
    A注意到一种选项最多填对\(n\)个题所以答案是\(\min(n,cnt_a)+\min(n,cnt_b)+\min(n,cnt_c)+\min(n,cnt_d)\)B注意到操作只能让奇数变多,偶数变少,所以我们只能把偶数全变成奇数特判掉全是偶数的情况,容易得到答案下界:偶数个数容易想到一个naive贪心做法:每次都拿出奇数......
  • CF1974题解
    闲话1974年第一次在东南亚打自由搏击就取得了冠军······CF1974A简单计数题点击查看代码#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;intt;signedmain(){ scanf("%lld",&t); while(t--){ intx,y,ans=0,num=0; scanf("%lld%lld",&x,......