大語言模型的評估指標

目錄

一、混淆矩陣

1. 混淆矩陣的結構(二分類為例)

2.從混淆矩陣衍生的核心指標

3.多分類任務的擴展

4. 混淆矩陣的實戰應用

二、分類任務核心指標

1. Accuracy(準確率)

2. Precision(精確率)

3. Recall(召回率)

二、生成任務核心指標

1. BLEU(Bilingual Evaluation Understudy)

2. ROUGE(Recall-Oriented Understudy for Gisting Evaluation)

3. PPL(Perplexity,困惑度)

三、指標對比與選型指南

四:總結


一、混淆矩陣

混淆矩陣是評估分類模型性能的核心工具,是計算準確率(Accuracy)、精確率(Precision)召回率(Recall)的基礎工具,三者直接由混淆矩陣中的四個核心元素(TP、FP、FN、TN)定義。以矩陣形式直觀展示模型的預測結果與真實標簽的對比情況,尤其適用于二分類問題(可擴展至多分類)。以下是其完整解析:


1. 混淆矩陣的結構(二分類為例)
真實為正類(Positive)真實為負類(Negative)
預測為正類(Positive)True Positive (TP)False Positive (FP)
預測為負類(Negative)False Negative (FN)True Negative (TN)
  • TP(真正例):模型正確預測為正類的樣本數(例:真實為垃圾郵件,模型判定為垃圾郵件)。

  • FP(假正例):模型錯誤預測為正類的樣本數(例:真實為正常郵件,模型誤判為垃圾郵件)。

  • FN(假負例):模型錯誤預測為負類的樣本數(例:真實為垃圾郵件,模型漏判為正常郵件)。

  • TN(真負例):模型正確預測為負類的樣本數(例:真實為正常郵件,模型判定為正常郵件)。

2.從混淆矩陣衍生的核心指標

所有分類評估指標(Accuracy/Precision/Recall/F1)均可通過混淆矩陣計算:

指標公式物理意義
準確率(Accuracy)模型預測正確的總體比例,但對類別不均衡數據敏感(如99%負類時,全預測負類準確率99%)。
精確率(Precision)模型預測為正類的樣本中,真實為正類的比例(減少誤報)。
召回率(Recall)真實為正類的樣本中,被模型正確預測的比例(減少漏報)。
F1-Score精確率和召回率的調和平均數,平衡兩者矛盾。
3.多分類任務的擴展

對于多分類問題(如貓、狗、鳥分類),混淆矩陣擴展為 3×3 或更大的矩陣

預測:貓預測:狗預測:鳥
真實:貓TP?=505(貓→狗)3(貓→鳥)
真實:狗2(狗→貓)TP?=454(狗→鳥)
真實:鳥1(鳥→貓)2(鳥→狗)TP?=40
  • 對角線(TP?, TP?, TP?):各類別正確預測數。

  • 非對角線:類別間的混淆情況(如“貓→狗”表示真實為貓但預測為狗的樣本數)。

多分類指標計算方式

  • 宏平均(Macro):對每個類別的指標單獨計算后取平均(平等看待所有類別)。

  • 微平均(Micro):合并所有類別的TP/FP/FN后計算整體指標(受大類別影響更大)。

4. 混淆矩陣的實戰應用

場景1:醫療診斷(二分類)

  • 目標:癌癥篩查需最小化漏診(FN↓),允許一定誤診(FP↑)。

  • 優化策略:提高召回率(Recall),通過降低分類閾值(如概率>0.2即判為患病)。

場景2:電商評論情感分析(三分類:正面/中性/負面)

  • 問題:負面評論的識別對商家更重要。

  • 優化策略:針對“負面”類別單獨優化召回率,同時監控宏平均F1-Score。

場景3:推薦系統(點擊預測)

  • 需求:減少誤推薦(FP↓),避免用戶流失。

  • 優化策略:提高精確率(Precision),僅對高置信度樣本(如概率>0.8)進行推薦。


二、分類任務核心指標

1. Accuracy(準確率)
  • 定義:模型預測正確的樣本數量占總樣本量的比重。

  • 公式

  • 特點

    • 簡單直觀,但類別不均衡時失效

    • 例:100個樣本中95個正類,全預測正類時準確率95%,但模型無意義

  • 適用場景:類別分布均衡的二分類或多分類任務

  • 意義
    所有預測中正確的比例,反映模型的整體表現。

  • 局限性
    在類別不均衡時(如99%負類),即使全預測為負類,準確率也可高達99%,但模型無實際意義

2. Precision(精確率)
  • 定義:在被識別為正類別的樣本中,為正類別的比例。

  • 公式

  • 意義:衡量模型預測的精準度

    • 例:癌癥篩查中,減少誤診(FP)更重要,需高精確率

  • 別名:查準率

  • 應用場景
    需減少誤報(FP)的任務,如垃圾郵件分類(避免將正常郵件誤判為垃圾)。

3. Recall(召回率)
  • 定義:在所有正類別樣本中,被正確識別為正類別的比例。

  • 公式

  • 意義:衡量模型對正類的覆蓋能力

    • 例:金融風控中,漏掉欺詐交易(FN)損失大,需高召回率

  • 別名:查全率

  • 應用場景
    需減少漏報(FN)的任務,如癌癥篩查(寧可誤診,不可漏診)。


二、生成任務核心指標

1. BLEU(Bilingual Evaluation Understudy)
  • 定義:BLEU 分數是評估一種語言翻譯成另一種語言的文本質量的指標. 它將“質量”的好壞定義為與人類翻譯結果的一致性程度. 取值范圍是[0, 1], 越接近1, 表明翻譯質量越好.

  • 用途:機器翻譯、文本生成質量評估

  • 原理:通過n-gram(連續n個詞)匹配計算生成文本與參考文本的相似度

  • 公式

    • BP(Brevity Penalty):懲罰過短生成結果

    • pnpn?:n-gram精度(匹配次數/生成文本n-gram總數)

  • 特點

    • 值域0~1,越高越好

    • 對長文本連貫性評估不足

    • 側重精確性(生成文本是否包含參考文本的關鍵詞)。

  • BLEU舉例:
????????BLEU 根據`n-gram`可以劃分成多種評價指標,其中`n-gram`指的是連續的單詞個數為n,實踐中,通常是取N=1~4,然后對進行加權平均.?
?

下面舉例說計算過程(基本步驟):
1. 分別計算candidate句和reference句的N-grams模型,然后統計其匹配的個數,計算匹配度.
2. 公式:candidate和reference中匹配的 n?gram 的個數 /candidate中n?gram 的個數.
? 假設機器翻譯的譯文candidate和一個參考翻譯reference如下:

candidate: It is a nice day today
reference: today is a nice day
? 使用1-gram進行匹配:
candidate: {it, is, a, nice, day, today}
reference: {today, is, a, nice, day}
結果:其中{today, is, a, nice, day}匹配,所以 匹配度為5/6
? 使用2-gram進行匹配:
candidate: {it is, is a, a nice, nice day, day today}
reference: {today is, is a, a nice, nice day}
結果:其中{is a, a nice, nice day}匹配,所以 匹配度為3/5

? 使用3-gram進行匹配:

candidate: {it is a, is a nice, a nice day, nice day today}
reference: {today is a, is a nice, a nice day}
結果:其中{is a nice, a nice day}匹配,所以 匹配度為2/4
? 使用4-gram進行匹配:
candidate: {it is a nice, is a nice day, a nice day today}
reference: {today is a nice, is a nice day}
結果:其中{is a nice day}匹配,所以 匹配度為1/3

通過上面的例子分析可以發現,匹配的個數越多,BLEU值越大,則說明候選句子更好. 但是也會出現下面的極端情況:

極端例子:
candidate: the the the the
reference: The cat is standing on the ground
如果按照1-gram的方法進行匹配,則匹配度為1,顯然是不合理的
優化:
首先,計算一個單詞在任意一個參考句子出現的最大次數, 然后用每個(非重復)單詞在參考句子中出現的最大次數來修剪--單詞在候選句子的出現次數. 如下所示的公式:
其中k表示在候選句子(candidate)中出現的第k個詞語, c k 則代表在候選句子中這個詞語出現的次數,而s k 則代表在參考文本(reference)中這個詞語出現的次數.
優化極端例子
candidate: the the the the
reference: The cat is standing on the ground
如果按照1-gram的方法進行匹配,ck=4 sk=2 ,countk=min(4,2)=2
則匹配度為2/4=1/2.

代碼
# 安裝nltk的包-->pip install nltk
from nltk.translate.bleu_score import sentence_bleu
def cumulative_bleu(reference, candidate):bleu_1_gram = sentence_bleu(reference, candidate, weights=(1, 0, 0, 0))bleu_2_gram = sentence_bleu(reference, candidate, weights=(0.5, 0.5, 0, 0))bleu_3_gram = sentence_bleu(reference, candidate, weights=(0.33, 0.33, 0.33, 0))bleu_4_gram = sentence_bleu(reference, candidate, weights=(0.25, 0.25, 0.25, 0.25))return bleu_1_gram, bleu_2_gram, bleu_3_gram, bleu_4_gram# 生成文本
condidate_text = ["This", "is", "some", "generated", "text"]
# 參考文本列表
reference_texts = [["This", "is", "a", "reference", "text"],
["This", "is", "another", "reference", "text"]]
# 計算 Bleu 指標
c_bleu = cumulative_bleu(reference_texts, condidate_text)
# 打印結果
print("The Bleu score is:", c_bleu)
# The Bleu score is: (0.6, 0.387, 1.5945e-102, 9.283e-155)
2. ROUGE(Recall-Oriented Understudy for Gisting Evaluation)
  • 定義:ROUGE 指標是在機器翻譯、自動摘要、問答生成等領域常見的評估指標. ROUGE 通過將模型生 成的摘要或者回答與參考答案(一般是人工生成的)進行比較計算,得到對應的得分

  • 用途:文本摘要、對話生成評估

  • 常見變體

    • ROUGE-N:基于n-gram的召回率

    • ROUGE-L:基于最長公共子序列(LCS)

      • 評估生成文本與參考文本的語義覆蓋度

  • 特點

    • ROUGE-N側重詞匯重疊,ROUGE-L關注語義連貫

    • 值域0~1,越高越好

    • 側重內容覆蓋度(生成文本是否包含參考文本的核心信息)。

    • 側重召回率

  • ROUGE舉例:

????????ROUGE指標與BLEU指標非常類似,均可用來衡量生成結果和標準結果的匹配程度,不同的是ROUGE基于召回率,BLEU更看重準確率。ROUGE也分為四種方法:ROUGE-N, ROUGE-L, ROUGE-W, ROUGE-S.

下面舉例說計算過程(這里只介紹ROUGE_N):

基本步驟:Rouge-N實際上是將模型生成的結果和標準結果按N-gram拆分后,計算召回率.

? 假設模型生成的文本candidate和一個參考文本reference如下:

candidate: It is a nice day today
reference: today is a nice day
? 使用ROUGE-1進行匹配:
candidate: {it, is, a, nice, day, today}
reference: {today, is, a, nice, day}
結果:其中{today, is, a, nice, day}匹配,所以匹配度為5/5=1,這說明生成的內容完全覆蓋了參考文本中的所有單詞,質量較高.
通過類似的方法,可以計算出其他ROUGE指標(如ROUGE-2、ROUGE-L、ROUGE-S)的評分.

代碼

# 安裝rouge-->pip install rouge
from rouge import Rouge# 生成文本
generated_text = "This is some generated text."
# 參考文本列表
reference_texts = ["This is a reference text.", "This is another generated reference text."]
# 計算 ROUGE 指標
rouge = Rouge()
scores = rouge.get_scores(generated_text, reference_texts[1])# 打印結果
print("ROUGE-1 precision:", scores[0]["rouge-1"]["p"])
print("ROUGE-1 recall:", scores[0]["rouge-1"]["r"])
print("ROUGE-1 F1 score:", scores[0]["rouge-1"]["f"])
# ROUGE-1 precision: 0.8
# ROUGE-1 recall: 0.6666666666666666
# ROUGE-1 F1 score: 0.7272727223140496
3. PPL(Perplexity,困惑度)
  • 定義:PPL用來度量一個概率分布或概率模型預測樣本的好壞程度. PPL越小,標明模型越好.

  • 用途:語言模型(如GPT、BERT)的預訓練評估

  • 定義:模型對測試數據集的“困惑程度”,反映預測能力

  • 公式

    • NN為測試集總詞數,PP為模型預測概率

  • 特點

    • PPL越低,模型對語言分布擬合越好

    • 與生成質量間接相關(低PPL的模型生成文本更流暢,但未必內容正確)。

    • 例:GPT-3的PPL約20,遠優于傳統RNN模型(PPL>100)

代碼

import math#定義語料庫
sentences = [
['I', 'have', 'a', 'pen'],
['He', 'has', 'a', 'book'],
['She', 'has', 'a', 'cat']
]
#定義語言模型
unigram = {'I':1/12, 'have':1/12, 'a': 3/12, 'pen':1/12, 'He':1/12,'has':2/12,'book':1/12,'She':1/12, 'cat':1/12}# 計算困惑度
perplexity = 0
for sentence in sentences:sentence_prob = 1for word in sentence:sentence_prob *= unigram[word]temp = -math.log(sentence_prob, 2)/len(sentence)perplexity+=2**temp
perplexity = perplexity/len(sentences)
print('困惑度為:', perplexity)
# 困惑度為: 8.15

三、指標對比與選型指南

任務類型推薦指標核心關注點
文本分類Accuracy, F1, AUC-ROC類別均衡性、精確率與召回率平衡
機器翻譯BLEU, METEORn-gram匹配、語義相似度
文本摘要ROUGE-L, ROUGE-1/2內容覆蓋度、關鍵信息保留
語言模型預訓練PPL語言建模能力(預測下一個詞的能力)
情感分類Accuracy(均衡數據),F1(不均衡數據)

?四:總結

????????Accuracy、Precision、Recall主要用于分類任務(如翻譯、摘要),評估模型預測的準確性、精確性和覆蓋性。而BLEU、ROUGE用于生成任務(如情感分析、意圖識別),如機器翻譯和文本摘要,評估生成文本的質量。PPL(困惑度)則用于評估語言模型本身的預測能力,不直接涉及具體任務的結果。以下是它們的關聯與區別詳解:

核心定位與任務類型

指標類型適用任務核心目標
BLEU/ROUGE/PPL生成任務(文本生成、翻譯、摘要)評估生成文本的質量(內容匹配、流暢性)
Accuracy/Precision/Recall分類任務(二分類、多分類)評估分類結果的準確性、覆蓋度與精準度
BLEU指標: 評估一種語言翻譯成另一種語言的文本質量的指標.. 取值范圍是[0, 1], 越接近1, 表明翻譯質量越好.
ROUGE指標 ROUGE指標用來衡量生成結果和標準結果的匹配程 度,不同的是ROUGE基于召回率,BLEU更看重準確率。
PPL指標 PPL用來度量一個概率分布或概率模型預測樣本的好 壞程度.

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/78402.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/78402.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/78402.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SpringBoot Gradle插件:構建與打包配置

文章目錄 引言一、Spring Boot Gradle插件基礎二、依賴管理與配置三、應用打包配置四、啟動腳本與運行配置五、多環境構建與配置六、集成Docker與云原生支持七、實踐案例:自定義Spring Boot應用構建總結 引言 在Java生態系統中,Gradle作為一種靈活且強大…

Vue3 組件通信與插槽

Vue3 組件通信方式全解(10種方案) 一、組件通信方式概覽 通信方式適用場景數據流向復雜度Props/自定義事件父子組件簡單通信父 ? 子?v-model 雙向綁定父子表單組件父 ? 子??Provide/Inject跨層級組件通信祖先 → 后代??事件總線任意組件間通信任…

【KWDB 創作者計劃】_嵌入式硬件篇---數字電子器件

文章目錄 前言一、系列前綴(如 "74" 或 "54")74(商用級)54(工業級)二、邏輯家族(如 "LS"、"HC"、"HCT" 等)TTL(晶體管-晶體管邏輯)家族CMOS(互補金屬氧化物半導體)家族BiCMOS(雙極 CMOS)家族三、功能編號(如…

黃勇的《架構探險:從Java到大數據》內容詳解

《架構探險:從Java到大數據》內容詳解 1. 書籍核心主題 黃勇的《架構探險:從Java到大數據》是一本系統性探討架構設計演進的著作,結合Java技術棧和大數據場景,深入分析了從單體架構到分布式、微服務、云原生的演進路徑&#xff0…

【動手學強化學習】番外8-IPPO應用框架學習與復現

文章目錄 一、待解決問題1.1 問題描述1.2 解決方法 二、方法詳述2.1 必要說明(1)MAPPO 與 IPPO 算法的區別在于什么地方?(2)IPPO 算法應用框架主要參考來源 2.2 應用步驟2.2.1 搭建基礎環境2.2.2 IPPO 算法實例復現&am…

驅動開發硬核特訓 · Day 17:深入掌握中斷機制與驅動開發中的應用實戰

🎥 視頻教程請關注 B 站:“嵌入式 Jerry” 一、前言 在嵌入式驅動開發中,“中斷”幾乎無處不在。無論是 GPIO 按鍵、串口通信、網絡設備,還是 SoC 上的各種控制器,中斷都扮演著核心觸發機制的角色。對中斷機制掌握程度…

通過門店銷售明細表用PySpark得到每月每個門店的銷冠和按月的同比環比數據

假設我在Amazon S3上有銷售表的Parquet數據文件的路徑,包含ID主鍵、門店ID、日期、銷售員姓名和銷售額,需要分別用PySpark的SparkSQL和Dataframe API統計出每個月所有門店和各門店銷售額最高的人,不一定是一個人,以及他所在的門店…

PostgreSQL 常用日志

PostgreSQL 常用日志詳解 PostgreSQL 提供了多種日志類型&#xff0c;用于監控數據庫活動、排查問題和優化性能。以下是 PostgreSQL 中最常用的日志類型及其配置和使用方法。 一、主要日志類型 日志類型文件位置主要內容用途服務器日志postgresql-<日期>.log服務器運行…

MySQL 存儲過程:解鎖數據庫編程的高效密碼

目錄 一、什么是存儲過程?二、創建存儲過程示例 1:創建一個簡單的存儲過程示例 2:創建帶輸入參數的存儲過程示例 3:創建帶輸出參數的存儲過程三、調用存儲過程調用無參數存儲過程調用帶輸入參數的存儲過程調用帶輸出參數的存儲過程四、存儲過程中的流控制語句示例 1:使用 …

基于STM32的物流搬運機器人

功能&#xff1a;智能循跡、定距夾取、顏色切換、自動跟隨、自動避障、聲音夾取、藍牙遙控、手柄遙控、顏色識別夾取、循跡避障、循跡定距…… 包含內容&#xff1a;完整源碼、使用手冊、原理圖、視頻演示、PPT、論文參考、其余資料 資料只私聊

pg_jieba 中文分詞

os: centos 7.9.2009 pg: 14.7 pg_jieba 依賴 cppjieba、limonp pg_jieba 下載 su - postgreswget https://github.com/jaiminpan/pg_jieba/archive/refs/tags/vmaster.tar.gzunzip ./pg_jieba-master cd ~/pg_jieba-mastercppjieba、limonp 下載 su - postgrescd ~/pg_jie…

基于Python+Flask的MCP SDK響應式文檔展示系統設計與實現

以下是使用Python Flask HTML實現的MCP文檔展示系統&#xff1a; # app.py from flask import Flask, render_templateapp Flask(__name__)app.route(/) def index():return render_template(index.html)app.route(/installation) def installation():return render_templa…

【“星睿O6”AI PC開發套件評測】GPU矩陣指令算力,GPU帶寬和NPU算力測試

【“星睿O6”AI PC開發套件評測】GPU矩陣指令算力&#xff0c;GPU帶寬和NPU算力測試 安謀科技、此芯科技與瑞莎計算機聯合打造了面向AI PC、邊緣、機器人等不同場景的“星睿O6”開發套件 該套件異構集成了Armv9 CPU核心、Arm Immortalis? GPU以及安謀科技“周易”NPU 開箱和…

【Go語言】RPC 使用指南(初學者版)

RPC&#xff08;Remote Procedure Call&#xff0c;遠程過程調用&#xff09;是一種計算機通信協議&#xff0c;允許程序調用另一臺計算機上的子程序&#xff0c;就像調用本地程序一樣。Go 語言內置了 RPC 支持&#xff0c;下面我會詳細介紹如何使用。 一、基本概念 在 Go 中&…

11、Refs:直接操控元素——React 19 DOM操作秘籍

一、元素操控的魔法本質 "Refs是巫師與麻瓜世界的連接通道&#xff0c;讓開發者能像操控魔杖般精準控制DOM元素&#xff01;"魔杖工坊的奧利凡德先生輕撫著魔杖&#xff0c;React/Vue的refs能量在杖尖躍動。 ——以神秘事務司的量子糾纏理論為基&#xff0c;揭示DOM…

MinIO 教程:從入門到Spring Boot集成

文章目錄 一. MinIO 簡介1. 什么是MinIO&#xff1f;2. 應用場景 二. 文件系統存儲發展史1. 服務器磁盤&#xff08;本地存儲&#xff09;2. 分布式文件系統(如 HDFS、Ceph、GlusterFS)3. 對象存儲&#xff08;如 MinIO、AWS S3&#xff09;4.對比總結5.選型建議6.示例方案 三.…

電競俱樂部護航點單小程序,和平地鐵俱樂部點單系統,三角洲護航小程序,暗區突圍俱樂部小程序

電競俱樂部護航點單小程序開發&#xff0c;和平地鐵俱樂部點單系統&#xff0c;三角洲護航小程序&#xff0c;暗區突圍俱樂部小程序開發 端口包含&#xff1a; 超管后臺&#xff0c; 老板端&#xff0c;打手端&#xff0c;商家端&#xff0c;客服端&#xff0c;管事端&#x…

基于 IPMI + Kickstart + Jenkins 的 OS 自動化安裝

Author&#xff1a;Arsen Date&#xff1a;2025/04/26 目錄 環境要求實現步驟自定義 ISO安裝 ipmitool安裝 NFS定義 ks.cfg安裝 HTTP編寫 Pipeline 功能驗證 環境要求 目標服務器支持 IPMI / Redfish 遠程管理&#xff08;如 DELL iDRAC、HPE iLO、華為 iBMC&#xff09;&…

如何在SpringBoot中通過@Value注入Map和List并使用YAML配置?

在SpringBoot開發中&#xff0c;我們經常需要從配置文件中讀取各種參數。對于簡單的字符串或數值&#xff0c;直接使用Value注解就可以了。但當我們需要注入更復雜的數據結構&#xff0c;比如Map或者List時&#xff0c;該怎么操作呢&#xff1f;特別是使用YAML這種更人性化的配…

短信驗證碼安全實戰:三網API+多語言適配開發指南

在短信服務中&#xff0c;創建自定義簽名是發送通知、驗證信息和其他類型消息的重要步驟。萬維易源提供的“三網短信驗證碼”API為開發者和企業提供了高效、便捷的自定義簽名創建服務&#xff0c;可以通過簡單的接口調用提交簽名給運營商審核。本文將詳細介紹如何使用該API&…