4.1 機器學習 - 評估指標

模型評估是判斷 “模型是否有效” 的核心環節,需結合任務類型(分類 / 回歸)、數據分布(如類別不平衡)和商業目標選擇指標。本節聚焦分類任務的核心評估指標,從定義、計算邏輯到適用場景逐一拆解,同時補充商業場景的特殊需求。

一、分類任務的核心評估指標(基礎篇)

分類任務的本質是 “將樣本預測為某一類別”,需通過指標量化 “預測結果與真實標簽的匹配程度”。首先明確混淆矩陣(Confusion Matrix) —— 所有分類指標的計算基礎:

真實 \ 預測正類(Positive)負類(Negative)
正類(Positive)TP(True Positive,真陽性)FN(False Negative,假陰性)
負類(Negative)FP(False Positive,假陽性)TN(True Negative,真陰性)
  • TP:真實正類,預測為正類(正確預測);
  • FN:真實正類,預測為負類(漏判,如癌癥患者被判為健康);
  • FP:真實負類,預測為正類(誤判,如健康人被判為癌癥);
  • TN:真實負類,預測為負類(正確預測)。

基于混淆矩陣,衍生出 4 個最常用的基礎指標:

指標名稱核心定義計算公式適用場景
Accuracy(準確度)所有預測正確的樣本占總樣本的比例,衡量 “整體預測正確性”Accuracy=TP+TNTP+FN+FP+TN\large \text{Accuracy} = \frac{TP + TN}{TP + FN + FP + TN}Accuracy=TP+FN+FP+TNTP+TN?數據分布均衡的場景(如正、負類樣本占比接近 1:1),如 “手寫數字識別”(10 類樣本占比相近)。
?? 局限性:類別不平衡時失效(如 “fraud 檢測” 中欺詐樣本僅占 1%,全預測為 “非欺詐” 也能得 99% 準確度,但模型無實際價值)。
Precision(精度 / 精確率)預測為正類的樣本中,真實為正類的比例,衡量 “正類預測的準確性”(降低誤判)Precision=TPTP+FP\large\text{Precision} = \frac{TP}{TP + FP}Precision=TP+FPTP?需嚴格控制 “假陽性” 的場景:
垃圾郵件檢測(避免將正常郵件誤判為垃圾郵件,即 FP 要少);
癌癥診斷初篩(避免健康人被誤判為癌癥,減少不必要的后續檢查)。
Recall(召回率 / 查全率)真實為正類的樣本中,被預測為正類的比例,衡量 “正類的覆蓋能力”(降低漏判)Recall=TPTP+FN\large\text{Recall} = \frac{TP}{TP + FN}Recall=TP+FNTP?需嚴格控制 “假陰性” 的場景:
欺詐交易檢測(避免將欺詐交易漏判為正常交易,即 FN 要少,否則損失資金);
新冠病毒檢測(避免感染者漏判為陰性,防止疫情擴散)。
F1 Score(F1 分數)精度(Precision)和召回率(Recall)的調和平均數,平衡二者矛盾F1=2×Precision×RecallPrecision+Recall\large\text{F1} = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}}F1=2×Precision+RecallPrecision×Recall?精度與召回率均需兼顧的場景:
電商商品推薦(既不能推薦大量無關商品(低 Precision),也不能漏推用戶可能喜歡的商品(低 Recall));
招聘簡歷篩選(既不能誤篩優秀候選人(低 Recall),也不能讓大量不合格簡歷進入面試(低 Precision))。
?? 特點:當 Precision 和 Recall 都高時,F1 才高;若一方極低,F1 也會很低(避免單一指標欺騙)。

指標計算示例(代碼片段)

以二分類任務為例,基于 PyTorch 張量計算上述指標(假設y為真實標簽,y_hat為預測標簽,取值 0/1):

import torch# 模擬數據:真實標簽y,預測標簽y_hat(各100個樣本)
y = torch.tensor([1,0,1,1,0]*20)  # 真實正類40個,負類60個
y_hat = torch.tensor([1,0,0,1,1]*20)  # 預測正類40個,負類60個# 1. 計算混淆矩陣元素
TP = ((y_hat == 1) & (y == 1)).sum().item()  # 真陽性:26
FN = ((y_hat == 0) & (y == 1)).sum().item()  # 假陰性:14
FP = ((y_hat == 1) & (y == 0)).sum().item()  # 假陽性:14
TN = ((y_hat == 0) & (y == 0)).sum().item()  # 真陰性:46# 2. 計算各指標
Accuracy = (TP + TN) / (TP + FN + FP + TN)  # (26+46)/100 = 0.72
Precision = TP / (TP + FP)  # 26/(26+14) = 0.65
Recall = TP / (TP + FN)  # 26/(26+14) = 0.65
F1 = 2 * Precision * Recall / (Precision + Recall)  # 2*0.65*0.65/(0.65+0.65) = 0.65print(f"Accuracy: {Accuracy:.2f}, Precision: {Precision:.2f}, Recall: {Recall:.2f}, F1: {F1:.2f}")

二、分類任務的核心評估指標(進階篇):ROC 曲線與 AUC

基礎指標(如 Precision、Recall)依賴 “固定的分類閾值 θ”(如將模型輸出概率≥0.5 的樣本預測為正類),而ROC 曲線與 AUC通過 “遍歷所有閾值”,全面衡量模型的 “類別區分能力”,尤其適合類別不平衡場景。

1. ROC 曲線:閾值無關的區分能力可視化

核心概念(基于混淆矩陣)
  • FPR(False Positive Rate,假正例率):真實負類中被預測為正類的比例(對應 ROC 的 X 軸),衡量 “誤判負類的概率”: FPR=FPFP+TN\large \text{FPR} = \frac{FP}{FP + TN}FPR=FP+TNFP?
  • TPR(True Positive Rate,真正例率):真實正類中被預測為正類的比例(對應 ROC 的 Y 軸),即 “Recall(召回率)”:TPR=TPTP+FN=Recall \large \text{TPR} = \frac{TP}{TP + FN} = \text{Recall}TPR=TP+FNTP?=Recall
ROC 曲線的繪制邏輯
  1. 獲取模型對所有樣本的 “預測概率”(而非固定標簽,如模型輸出 “樣本為正類的概率 = 0.8”);
  2. 遍歷一系列閾值 θ(如從 0 到 1,步長 0.01):
    • 對每個 θ,將 “預測概率≥θ” 的樣本判為正類,“<θ” 判為負類;
    • 計算該 θ 對應的 FPR(X 值)和 TPR(Y 值);
  3. 將所有(FPR, TPR)點連成曲線,即為 ROC 曲線。
ROC 曲線的解讀
  • 理想曲線:緊貼左上角(即 FPR 接近 0 時,TPR 接近 1)—— 意味著 “幾乎不誤判負類,且能覆蓋所有正類”;
  • 隨機猜測曲線:沿對角線(y=x)分布 ——AUC=0.5,模型無區分能力(如拋硬幣預測類別);
  • 差模型曲線:在對角線下方 —— 模型區分能力比隨機猜測還差(可反向預測改善)。

2. AUC(Area Under ROC Curve):ROC 曲線下的面積

核心定義

AUC 是 ROC 曲線與 X 軸(FPR 軸)圍成的面積,取值范圍為 [0,1],直接量化模型的 “類別區分能力”:

  • AUC=1:完美模型(所有正類樣本的預測概率都大于負類,無任何誤判);
  • 0.5 < AUC < 1:模型有一定區分能力(AUC 越接近 1,區分能力越強);
  • AUC=0.5:模型無區分能力(與隨機猜測無異);
  • AUC < 0.5:模型區分能力差于隨機猜測(通常是標簽定義反了,可調整正 / 負類后重新計算)。
適用場景
  • 需評估 “模型整體區分能力” 而非 “某一閾值下的性能”,如 “信用評分模型”(需判斷用戶 “違約概率” 的排序能力,而非固定閾值下的分類結果);
  • 類別不平衡場景(如 “疾病診斷” 中陽性樣本極少),AUC 比 Accuracy 更能反映模型真實性能。

三、商業場景中的模型評估:不止于技術指標

在工業落地中,技術指標(如 Accuracy、AUC)需結合商業目標轉化為 “可量化的業務價值指標”,常見場景如下:

業務場景技術指標商業評估指標核心目標
電商推薦系統Precision(推薦準確率)、Recall(推薦覆蓋度)1. 點擊率(CTR):推薦商品中被點擊的比例;
2. 轉化率(CVR):點擊推薦商品后下單的比例;
3. 客單價(ARPU):推薦帶來的平均用戶消費額
提升用戶點擊與下單,最終增加平臺營收
金融欺詐檢測Recall(欺詐召回率)、FPR(誤判率)1. 欺詐損失挽回率:被模型識別并攔截的欺詐交易損失占總欺詐損失的比例;
2. 正常用戶誤攔截率:被誤判為欺詐的正常交易占總正常交易的比例
最大化挽回欺詐損失,同時最小化正常用戶體驗影響
在線廣告投放AUC(廣告點擊率預測的區分能力)1. 廣告投放 ROI:廣告花費與廣告帶來的營收比;
2. 千次展現收益(eCPM):每千次廣告展現帶來的收益
提升廣告投放效率,降低廣告主成本,增加平臺廣告收入
內容審核(如短視頻違規檢測)Precision(違規識別準確率)、Recall(違規召回率)1. 人工復核率:模型標記為違規的內容中需人工二次審核的比例; 2. 違規漏審率:未被模型識別的違規內容占總違規內容的比例降低人工審核成本,同時避免違規內容流出(減少平臺風險)

四、總結

模型評估需遵循 “技術指標為基,商業目標為綱” 的原則:

  1. 基礎任務(如學術實驗、模型初步篩選):優先使用 Accuracy、Precision、Recall、F1 等指標,快速判斷模型分類能力;
  2. 復雜任務(如類別不平衡、概率排序):使用 ROC 曲線與 AUC,全面評估模型區分能力;
  3. 商業落地:將技術指標轉化為業務指標(如 CTR、ROI),確保模型能為業務帶來實際價值 ——一個技術指標優秀但無法提升業務的模型,在工業界毫無意義

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

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

相關文章

雅菲奧朗SRE知識墻分享(七):『可觀測性的定義與實踐』

在分布式系統日益復雜的當下&#xff0c;故障不再是“是否發生”&#xff0c;而是“何時爆發”。SRE可觀測性正是應對不確定性的“顯微鏡”與“導航儀”&#xff1a;通過指標、日志、追蹤三大數據血脈&#xff0c;實時外化系統黑盒&#xff0c;讓每一次抖動、每一行報錯、每一次…

C++ 詳細講解vector類

目錄 1. 什么是vector? 2. vector的使用 1. 構造函數---初始化 1. 默認構造函數(無參構造&#xff09; 2. 填充構造函數(指定數量和初始值&#xff09; 3. 范圍構造函數(通過迭代器拷貝其他容器元素&#xff09; 4. 拷貝構造函數(直接拷貝另一個vector&#xff09; 注…

Windows Server2012 R2 安裝.NET Framework 3.5

Windows Server2012 R2 安裝.NET Framework 3.5 虛擬機系統是Windowsserver 2012R2&#xff0c;在安裝SQlserver2012時候警告未安裝.NET Framework 3.5。于是找了個.NET Framework 3.5的安裝包&#xff0c;但是由于系統原因無法正常安裝。按照提示從控制面板-程序-啟動或關閉Wi…

IDEA中Transaction翻譯插件無法使用,重新配置Transaction插件方法

原因 由于Transaction默認的翻譯引擎為谷歌翻譯&#xff0c;由于一些原因&#xff0c;這個翻譯無法使用&#xff0c;因此導致插件無法使用。 解決辦法 更換Transaction插件翻譯引擎即可。 方法步驟 1.進入Idea的設置里&#xff0c;找到Tool下的Transaction選項2.更改翻譯引擎&a…

外置flash提示音打包腳本

批處理腳本說明文檔 - 音頻資源打包與分發 一、腳本功能概述 本批處理腳本&#xff08;.bat 文件&#xff09;用于將指定目錄下的多個音頻文件&#xff08;.wtg 和 .mp3 格式&#xff09;打包為音頻資源配置文件&#xff08;tone.cfg&#xff09;&#xff0c;進一步將配置文件與…

Go語言設計模式(三)抽象工廠模式

抽象工廠模式與工廠模式類似,被認為是工廠方法模式的另一層抽象.抽象工廠模式圍繞創建其他工廠的超級工廠工作.1.角色:1.1抽象產品:構成產品系列的一組不同但相關的產品的聲明接口.1.2具體產品:實現抽象產品接口的類,主要用于定義產品對象,由相應的具體工廠創建.1.3抽象工廠:創…

大狗王 DG1+ 13.6G礦機詳細參數解析與性能評測

近年來&#xff0c;隨著加密貨幣挖礦行業的不斷發展&#xff0c;越來越多的礦機廠商推出了高性能、低功耗的礦機設備。大狗王&#xff08;DG1&#xff09;13.6G礦機便是其中一款備受關注的設備&#xff0c;特別是在LTC&#xff08;萊特幣&#xff09;、Doge&#xff08;狗狗幣&…

Python 算術運算練習題

計算數字特征值題目描述 編寫一個程序&#xff0c;接收用戶輸入的兩個整數 a 和 b&#xff08;a > b > 0&#xff09;&#xff0c;計算并輸出以下結果&#xff1a;a 與 b 的和的平方a 除以 b 的商和余數a 與 b 的平均數&#xff08;保留 2 位小數&#xff09;示例請輸入整…

OS項目構建效能改進策劃方案

一、現狀分析與問題定位構建穩定性問題&#xff1a; 表現&#xff1a;非代碼變更引發的構建失敗&#xff08;如環境依賴、工具鏈版本、第三方庫更新、資源競爭等&#xff09;“幽靈構建”時有發生。影響&#xff1a;嚴重破壞開發流程的順暢性&#xff0c;耗費大量開發/測試人員…

Ai8051 2.4寸320*240 ILI9341 I8080接口驅動

/*---------------------------------------------------------------------*/ /* --- Web: www.STCAI.com ---------------------------------------------*/ /* 液晶屏驅動程序參考wiki技術網站提供的開源源碼&#xff0c;僅供學習使用 */ /*----------------------…

最大似然估計:損失函數的底層數學原理

引言當你第一次看到線性回歸時&#xff0c;你是否注意到了作為參數優化關鍵的損失函數&#xff08;均方損失&#xff09;&#xff0c;你是否能夠理解它的本質和由來。其實&#xff0c;在我第一次接觸時&#xff0c;我是感到有些驚訝的&#xff0c;然后試著去強行理解它&#xf…

使用 n8n 結合通義千問大模型構建業務數據庫分析智能體

一、項目概述 本項目致力于構建一個結合 n8n 工作流引擎 與 通義千問大模型 的智能體&#xff0c;旨在對龐大的業務數據庫進行自動化分析、語義建模及自然語言問答。通過不同工作流的迭代構建&#xff0c;實現了表結構解析、業務含義提取、關系可視化、問答服務等能力&#xff…

css margin外邊距重疊/塌陷問題

一、定義 相鄰塊級元素或父子元素的垂直外邊距會合并&#xff08;折疊&#xff09;為單個邊距&#xff0c;其大小為單個邊距的最大值&#xff08;或如果他們相等&#xff0c;則僅為其中的一個&#xff09;&#xff0c;這種行為稱為邊距折疊 <div style"margin-bottom: …

可重復讀 是否“100%”地解決幻讀?

這是一個非常深刻的問題&#xff0c;答案是&#xff1a;幾乎解決了&#xff0c;但在一個非常特殊且罕見的邊界場景下&#xff0c;理論上仍然可能出現幻讀。 因此&#xff0c;嚴格來說&#xff0c;它并非被“徹底”或“100%”地解決。下面我們來詳細分解這個結論&#xff1a;1. …

從零開始的云計算生活——第五十八天,全力以赴,Jenkins部署

目錄 一.故事背景 二.安裝Jenkins必要插件 1.安裝Publish Over SSH 2.安裝maven integration插件 3. 配置jenkins并發執行數量 4. 配置郵件地址 三. 基于Jenkins部署PHP環境 1. 下載ansible插件 2. 下載ansible應用 3. 構建項目 ?編輯 使用Jenkins賬戶生成ssh密鑰 …

串口HAL庫發送問題

想了很久&#xff0c;不知道該標題起的是否合適&#xff0c;該篇Blog用于記錄在使用HAL庫的USART模塊時實際遇到的一個涉及發送方式的問題&#xff0c;用于提醒自身同時也希望能幫到各位。程序問題敘述先來看一段代碼&#xff1a;void CusUSART_SendByte_IT( uint8_t Byte ) { …

CUDA默認流的同步行為

默認流 對于需要指定 cudaStream_t參數的 cuda API&#xff0c;如果將 0作為實參傳入&#xff0c;則視為使用默認流&#xff1b;對于不需要指定 cudaStream_t參數的 cuda API&#xff0c;則也視為使用默認流。 在 cuda中&#xff0c;默認流有兩種類型&#xff0c;一種是 legacy…

「數據獲取」《中國電力統計年鑒》(1993-2024)(含中國電力年鑒)

01、數據簡介一、《中國電力統計年鑒》作為全面系統反映中國電力領域發展狀況的權威性年度統計資料&#xff0c;涵蓋了電力建設、生產、消費及供需等全鏈條關鍵信息。其編制工作有著深厚的歷史積淀&#xff0c;可追溯至 20 世紀 50 年代&#xff0c;歷經數十年的積累與完善&…

《AI大模型應知應會100篇》第68篇:移動應用中的大模型功能開發 —— 用 React Native 打造你的語音筆記摘要 App

&#x1f4f1; 第68篇&#xff1a;移動應用中的大模型功能開發 —— 用 React Native 打造你的語音筆記摘要 App &#x1f3af; 核心目標&#xff1a;零門檻集成大模型&#xff0c;5步開發跨平臺智能功能 &#x1f9e9; 適用人群&#xff1a;前端開發者、產品經理、獨立開發者 …

FPGA ad9248驅動

ad9248的最高時鐘頻率65mhz&#xff0c;采用cmos3.3v電壓的并行io接口&#xff0c;做成電子模塊后一般為雙通道adc&#xff0c;有兩個對外輸出時鐘cha_clk與chb_clk&#xff0c;一個并行輸入端口&#xff0c;14分辨率的ddr_data&#xff0c;其模塊邏輯如下&#xff0c;首先向ad…