深度學習篇---混淆矩陣

要理解混淆矩陣(Confusion Matrix),我們可以從它的名字入手:它本質是一張 “幫你理清模型預測結果到底‘混淆’在哪里” 的表格,核心作用是評估分類模型的表現 —— 比如判斷一張圖片是 “貓” 還是 “狗”、一封郵件是 “垃圾郵件” 還是 “正常郵件” 這類二分類問題,也能擴展到多分類(比如判斷水果是 “蘋果”“香蕉”“橙子”)。

它之所以 “通俗易懂”,是因為它完全貼合我們對 “預測對錯” 的直觀認知,只是把 “對和錯” 拆成了更細致的場景,幫我們看清模型到底是 “錯得離譜” 還是 “錯得有規律”。

第一步:先明確兩個核心概念

在看混淆矩陣前,必須先分清 “真實情況” 和 “模型預測情況”:

  • 真實標簽(Actual):數據的 “真相”,比如這封郵件確實是垃圾郵件。
  • 預測標簽(Predicted):模型的 “判斷”,比如模型說這封郵件是正常郵件。

分類問題的結果,本質上就是 “真實標簽” 和 “預測標簽” 的 4 種組合 —— 這 4 種組合,就是混淆矩陣的核心內容(以最常見的二分類為例,比如 “判斷腫瘤是良性還是惡性”,我們先把 “關注的結果” 定義為 “正類”,比如 “惡性腫瘤”,另一類就是 “負類”)。

第二步:用 “二分類” 看懂混淆矩陣的 4 個核心指標

我們用一個具體例子展開:假設醫院用模型判斷 100 個患者的腫瘤是否為惡性(正類 = 惡性,負類 = 良性),最終得到如下結果,這就是一張完整的二分類混淆矩陣:

模型預測:正類(惡性)模型預測:負類(良性)
真實:正類(惡性)TP(真陽性)=18FN(假陰性)=2
真實:負類(良性)FP(假陽性)=3TN(真陰性)=77

表格里的 4 個縮寫(TP/FN/FP/TN)是混淆矩陣的 “通用語言”,我們逐個用例子翻譯,保證一看就懂:

1. TP(True Positive,真陽性):“模型說對了,且說的是‘正類’”
  • 真實情況:患者確實是惡性腫瘤(正類)。
  • 模型預測:模型判斷為惡性腫瘤(正類)。
  • 例子:18 個患者真的是惡性,模型也準確判斷為惡性 —— 這是模型的 “正確功勞”,尤其是在醫療場景中,TP 越多越好(能準確抓出重病患者)。
2. TN(True Negative,真陰性):“模型說對了,但說的是‘負類’”
  • 真實情況:患者是良性腫瘤(負類)。
  • 模型預測:模型判斷為良性腫瘤(負類)。
  • 例子:77 個患者確實是良性,模型也判斷為良性 —— 這也是 “正確功勞”,避免了良性患者被誤判為惡性而恐慌。
3. FP(False Positive,假陽性):“模型說錯了,把‘負類’當成了‘正類’”
  • 真實情況:患者是良性腫瘤(負類)。
  • 模型預測:模型誤判為惡性腫瘤(正類)。
  • 例子:3 個良性患者被模型說成 “惡性”—— 這是 “冤枉好人”,后果可能是患者焦慮、做不必要的檢查,所以 FP 越少越好。
4. FN(False Negative,假陰性):“模型說錯了,把‘正類’當成了‘負類’”
  • 真實情況:患者是惡性腫瘤(正類)。
  • 模型預測:模型誤判為良性腫瘤(負類)。
  • 例子:2 個惡性患者被模型說成 “良性”—— 這是 “放過壞人”,后果極其嚴重(錯過最佳治療時機),所以 FN 是我們最想避免的錯誤。

第三步:為什么需要混淆矩陣?—— 比 “準確率” 更有用

很多人會問:“直接算‘準確率’(對的預測數 / 總預測數)不就夠了嗎?為什么要搞這么復雜的矩陣?”

答案是:準確率會騙人,混淆矩陣能暴露真相

比如上面的例子,準確率 =(TP+TN)/ 總人數 =(18+77)/100=95%,看起來很高;但如果換一個場景:假設 100 個患者里只有 1 個是惡性(正類),99 個是良性(負類),模型 “偷懶” 把所有患者都判為良性 —— 此時:

  • 準確率 =(0+99)/100=99%(看起來更厲害),但實際上:
    • FN=1(唯一的惡性患者被漏掉,后果致命),
    • FP=0,TP=0,TN=99

這種情況下,“高準確率” 完全是假象,而混淆矩陣能立刻拆穿這個假象 —— 因為它會清晰顯示 “TP=0,FN=1”,讓我們知道模型根本沒抓到一個正類。

這就是混淆矩陣的核心價值:它能幫我們看到 “準確率” 掩蓋的錯誤類型,尤其是在 “數據不平衡”(比如正類很少、負類很多)的場景中,比單一的準確率更有參考意義

第四步:從混淆矩陣延伸出的 “實用指標”

混淆矩陣不只是看 4 個數字,我們還能從它身上算出更貼合實際需求的指標,比如:

指標名稱計算公式含義(以 “惡性腫瘤判斷” 為例)適用場景
精確率(Precision)TP / (TP + FP)模型說 “是惡性” 的患者中,真的是惡性的比例(避免冤枉好人)比如垃圾郵件過濾(少誤刪正常郵件)
召回率(Recall)TP / (TP + FN)所有真惡性患者中,被模型準確抓到的比例(避免放過壞人)比如腫瘤診斷(盡量不漏診)
F1 分數2*(精確率 * 召回率)/(精確率 + 召回率)精確率和召回率的 “平衡值”(兩者不可兼得時看這個)希望兩者都不太低的場景

比如前面的腫瘤例子:

  • 精確率 = 18/(18+3)=85.7%(模型說 “惡性” 的 21 人里,18 人是真的,3 人被冤枉);
  • 召回率 = 18/(18+2)=90%(所有 20 個惡性患者里,18 人被抓到,2 人漏掉);
  • F1 分數≈87.8%(說明模型在 “不冤枉” 和 “不漏掉” 之間平衡得不錯)。

第五步:多分類場景的混淆矩陣

前面講的是二分類(只有 2 類),但混淆矩陣也能輕松擴展到多分類,比如 “判斷水果是蘋果、香蕉、橙子”(3 分類):

模型預測:蘋果模型預測:香蕉模型預測:橙子
真實:蘋果TP1(真蘋果)FN1(蘋果→香蕉)FN2(蘋果→橙子)
真實:香蕉FP1(香蕉→蘋果)TP2(真香蕉)FN3(香蕉→橙子)
真實:橙子FP2(橙子→蘋果)FP3(橙子→香蕉)TP3(真橙子)

核心邏輯和二分類一致:

  • 對角線(TP1/TP2/TP3)是 “模型預測對的”,數值越高越好;
  • 非對角線(比如 “真實蘋果→預測香蕉”)是 “模型混淆的”,數值越低越好。

通過這張表,我們能立刻看出模型最容易搞混哪兩類 —— 比如如果 “真實香蕉→預測橙子” 的數值很高,說明模型經常把香蕉認成橙子,可能需要補充更多香蕉和橙子的特征數據。

一句話總結混淆矩陣

它就像一張 “模型錯題本”:不僅告訴你 “模型對了多少、錯了多少”,還能精確到 “錯在哪里(是冤枉好人還是放過壞人)”,讓你既知道模型的優點,也能精準找到改進的方向 —— 這就是它比單一指標更實用的核心原因。

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

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

相關文章

MySQL重大隱患!mysqlpump的--set-gtid-purged參數在5.7和8.0的雷區

MySQLPump是MySQL官方提供的一個用于備份和恢復MySQL數據庫的工具。它于MySQL 5.7.8版本中首次引入,旨在提供一種快速、可靠且高效的備份和恢復解決方案。MySQL Pump首次支持了并行導出、壓縮導出,可以利用多核CPU來提高備份能力,在效率上要比…

低質量視頻變高清AI:告別模糊,重現清晰畫質

在數字時代,視頻內容的創作和消費日益普及,然而,許多早期拍攝或存儲的視頻,由于技術限制或壓縮等原因,往往存在畫質不佳的問題,如模糊、噪點多、分辨率低等。這不僅影響觀看體驗,也限制了這些珍…

Linux入門教程 第十二章 防火墻

文章目錄前言一、 iptables 概述Netfilter二、iptables 的表、鏈結構2.1 ptables的四表五鏈結構介紹2.1.1 四表五鏈2.1.2 四表2.1.3 **五鏈**2.2 數據包過濾的匹配流程(數據包到防火墻)2.2.1 規則鏈之間的匹配順序:主機型防火墻:2.2.2 規則鏈內的匹配順序…

單詞搜索+回溯法

題目&#xff1a;思考&#xff1a; 1.經典回溯 實現&#xff1a; class Solution { public:bool find_word(vector<vector<char>>&board,string word,int pos,int i,int j){bool retfalse;if (posword.size()-1) return board[i][j]word[pos];if (board[i][j…

【嵌入式開發 Linux 常用命令系列 8 -- git checkout 解沖突詳細介紹】

文章目錄1. Git 沖突產生的場景2. 沖突標記符號解釋3. git checkout --ours 和 git checkout --theirs語法含義使用場景4. 操作完成后的流程5. 舉例演示1. Git 沖突產生的場景 當你在 git merge、git rebase、git cherry-pick 等操作時&#xff0c;如果 同一個文件的同一部分在…

16-day13強化學習和訓練大模型

強化學習 強化學習和監督學習是機器學習中的兩種不同的學習范式 強化學習&#xff1a;目標是讓智能體通過與環境的交互&#xff0c;學習到一個最優策略&#xff0c;以最大化長期累積獎勵。 例如&#xff0c;在機器人導航任務中&#xff0c;智能體需要學習如何在復雜環境中移動&…

OpenAI o1:OpenAI最新推出的AI大語言模型,更擅長推理也更貴

本文轉載自&#xff1a;OpenAI o1&#xff1a;OpenAI最新推出的AI大語言模型&#xff0c;更擅長推理也更貴 - Hello123工具導航 ** 一、&#x1f916; OpenAI o1 是什么&#xff1f; OpenAI o1 是 2024 年推出的推理特化型 AI 模型&#xff0c;主打 “慢思考、深分析”&#…

自然語言處理——03 RNN及其變體

1 認識RNN 1.1 概念循環神經網絡 RNN &#xff08;Recurrent Neural Network&#xff0c;簡稱RNN&#xff09;——處理序列數據的神經網絡&#xff1b;一般以序列數據作為輸入&#xff0c;通過網絡內部的結構設計有效捕捉序列之間的關系特征&#xff0c;一般也是以序列形式進行…

量子計算基礎

量子計算 量子計算一般由三個基本步驟組成&#xff1a;制備輸入量子態、對于量子態執行幺正變換以及測量輸出態&#xff0c;這里將介紹這三個基本要素。 1 量子態 與經典計算中比特(bit)的概念相對應&#xff0c;量子計算中最小信息載體和處理單位是量子比特(quantum bit, or t…

Apache Maven 3.1.1 (eclipse luna)

Apache Maven 3.1.1 &#xff08;eclipse luna&#xff09;D:\apache-maven-3.1.1\binMAVEN_HOME:D:\apache-maven-3.1.1PATH:D:\apache-maven-3.1.1\binmvn -vMaven Integration for Eclipse(Luna)

應用篇#1:YOLOv8模型在Windows電腦攝像頭上的部署

一、前言如何部署YOLOv8模型在攝像頭上是完成模型應用必須解決的問題&#xff0c;通過使用“cv2”這個庫&#xff0c;可以完成對電腦攝像頭的調用&#xff08;本人Windows聯想&#xff09;&#xff0c;實時檢測并輸出圖像。二、代碼實現與解讀import warnings import cv2 from …

關于內存泄漏的一場討論

下面是以前&#xff08;大概2003、2004年吧&#xff09;在某BBS上的一場關于內存泄漏的討論。我先原樣貼出當時存檔的&#xff0c;如果C友友興趣&#xff0c;我再整理成文章。發信人: tianshangfei(天上飛的豬), 信區: C 標 題: 什么叫做內存泄漏&#xff0c;誰能定義一下呢 :…

Java全棧開發實戰:從基礎到微服務的深度解析

Java全棧開發實戰&#xff1a;從基礎到微服務的深度解析 一、面試官開場介紹 面試官&#xff08;微笑&#xff09;&#xff1a;你好&#xff0c;我是今天的面試官&#xff0c;我們公司是互聯網大廠&#xff0c;負責前端和后端的全棧開發。今天主要想了解你在技術方面的掌握情況…

深度學習--PyTorch代碼框架

一代碼import torch print(torch.__version__) # 驗證安裝的開發環境是否正確 MNIST 包含 70,000 張手寫數字圖像&#xff1b;60,000 張用于訓練&#xff0c;10,000 張用于測試。 圖像是灰度的&#xff0c;28x28 像素的&#xff0c;并且居中的&#xff0c;以減少預處理和加快運…

LinkedIn 自動消息發送工具

LinkedIn 自動消息發送工具說明文檔 一、項目概述 本項目是一個基于 Python 的自動化工具&#xff0c;用于批量向指定 LinkedIn 用戶發送消息。 核心功能包括&#xff1a; 讀取消息模板和 URL 列表&#xff1b;使用瀏覽器模擬操作&#xff0c;自動發送 LinkedIn 消息&#xff1…

新的 macOS 安裝程序聲稱能夠快速竊取數據,并在暗網上銷售

一種新型 macOS 信息竊取惡意軟件&#xff0c;被命名為 Mac.c&#xff0c;已成為地下惡意軟件即服務 (MaaS) 生態系統中強大的競爭者。 Mac.c 由使用化名“mentalpositive”的威脅行為者公開開發&#xff0c;是臭名昭著的 Atomic MacOS Stealer (AMOS) 的簡化衍生品&#xff0…

我的小灶坑

最近在寫項目 有時候希望有個人能跟我一起來寫 這樣子交流中也能有很多新的想法 但也并不是都是優點 因為我現在不是處于對這個項目的每個步驟都很熟悉的階段。 我覺得一個人從零到一確實能捋順不少 但是我在做項目的時候發現自己經常容易被細節的部分牽制 比如說一個按鈕的樣式…

6.4 Element UI 中的 <el-table> 表格組件

一、 核心組成與基本結構Element UI 的表格主要由以下幾個核心部分構成&#xff1a;<el-table>: 表格的根容器&#xff0c;負責管理數據、選擇、排序、分頁集成等全局狀態。<el-table-column>: 定義表格的一列。表格的列結構由一個或多個 <el-table-column> …

Linux 軟件編程(十一)網絡編程:TCP 機制與 HTTP 協議

五、TCP 進階機制&#xff08;一&#xff09;TCP 頭部標志位TCP 頭部的標志位是控制通信行為的 “開關”&#xff0c;常用標志位功能&#xff1a;標志位含義典型場景SYN請求建立連接三次握手第一步&#xff0c;發起連接請求ACK響應報文確認回復對方&#xff0c;確認已收到數據P…

[element-plus] el-table在行單擊時獲取行的index

el-table中添加 row-class-name&#xff0c;綁定row-click事件 <el-table:data"list":row-class-name"tableRowClassName"row-click"handleRowClick" > </el-table>給el-table中的每個row對象里添加index屬性 tableRowClassName({…