Python----機器學習(模型評估:準確率、損失函數值、精確度、召回率、F1分數、混淆矩陣、ROC曲線和AUC值、Top-k精度)

一、模型評估?

1. 準確率(Accuracy):這是最基本的評估指標之一,表示模型在測試集上正確 分類樣本的比例。對于分類任務而言,準確率是衡量模型性能的直觀標準。

2. 損失函數值(Loss):觀察模型在測試集上的損失函數值,可以幫助了解模型的 泛化能力。低損失值表明模型在未見過的數據上的表現較好。

3. 精確度(Precision):精確度是指所有被模型預測為正類的樣本中實際為正類 的比例。它關注的是預測為正類的準確性。

4. 召回率(Recall):召回率是指所有實際為正類的樣本中被模型正確識別為正類 的比例。它反映了模型識別出所有正類的能力。

5. F1分數(F1 Score):F1分數是精確度和召回率的調和平均值,適用于需要同時 考慮精確度和召回率的情況,特別是在類別分布不均衡時更為有用。

6. 混淆矩陣(Confusion Matrix):這是一個表格,展示了分類模型預測結果與 真實標簽之間的比較,可以從中計算出精確度、召回率等指標。

7. ROC曲線和AUC值(Receiver Operating Characteristic Curve and Area Under the Curve):ROC曲線通過描繪不同閾值下的真正率(True Positive Rate, TPR)與假正率(False Positive Rate, FPR),來評估二分類模型的性能。 AUC(曲線下面積)是ROC曲線下的面積,其值范圍從0到1,AUC值越接近1, 表示模型的分類性能越好。

8. Top-k精度:在多分類任務中,有時會考慮模型預測的前k個最可能類別中是否包 含正確答案,這種情況下會用到Top-k精度作為評估指標。

二、準確率(Accuracy)

????????這是最基本的評估指標之一,表示模型在測試集上正確分類樣本的比例。對于分類任 務而言,準確率是衡量模型性能的直觀標準。

特點:

  • 直觀但受類別不平衡影響大

三、損失函數值(Loss)

????????模型預測結果與真實標簽的差異量化值

四、精確度(Precision)

????????預測為正類的樣本中實際為正類的比例

五、召回率(Recall)

????????實際為正類的樣本中被正確預測的比例

六、F1分數(F1 Score)

????????F1 分數是精確度(Precision)和召回率(Recall)的調和平均數,它綜合考慮了模 型的預測精度和覆蓋率。

七、混淆矩陣(Confusion Matrix)

????????是一個表格,展示了分類模型預測結果與真實標簽之間的比較,可以從中計算出精 確度、召回率等指標。

預測類別1預測類別2
真實類別1TPFN
真實類別2FPTN

八、ROC曲線和AUC值

????????ROC曲線通過描繪不同閾值下的真正率(True Positive Rate, TPR)與假正率(False Positive Rate, FPR),來評估二分類模型的性能。AUC(曲線下面積)是ROC曲線 下的面積,其值范圍從0到1,AUC值越接近1,表示模型的分類性能越好。

8.1、ROC曲線

????????以假正率(FPR)為橫軸,真正率(TPR)為縱軸的曲線

8.2、AUC值

????????ROC曲線下的面積

九、Top-k精度

????????模型預測概率前k高的類別中包含真實標簽的比例

指標優點局限性適用場景
準確率直觀易理解類別不平衡時失效平衡數據集
F1分數平衡精確度與召回率僅關注單一類別(二分類)不均衡數據、二分類任務
AUC不受閾值影響僅適用于二分類類別不平衡的二分類任務
Top-k精度容錯性強計算復雜度高細粒度分類任務
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, confusion_matrix, roc_auc_score, top_k_accuracy_score# 真實標簽與預測結果
y_true = [0, 1, 2, 0, 1, 2]
y_pred = [0, 2, 1, 0, 0, 1]
y_proba = [[0.7, 0.2, 0.1],[0.1, 0.3, 0.6],[0.3, 0.4, 0.3],[0.8, 0.1, 0.1],[0.6, 0.2, 0.2],[0.2, 0.5, 0.3]]# 計算各項指標
print("準確率:", accuracy_score(y_true, y_pred))
print("精確度(宏平均):", precision_score(y_true, y_pred, average='macro'))
print("召回率(宏平均):", recall_score(y_true, y_pred, average='macro'))
print("F1分數(宏平均):", f1_score(y_true, y_pred, average='macro'))
print("混淆矩陣:\n", confusion_matrix(y_true, y_pred))
print("Top-2精度:", top_k_accuracy_score(y_true, y_proba, k=2))# 二分類場景下的AUC計算示例
y_true_binary = [0, 1, 1, 0]
y_proba_binary = [0.1, 0.9, 0.8, 0.3]
print("AUC值:", roc_auc_score(y_true_binary, y_proba_binary))

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

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

相關文章

cdn 是什么?

內容分發網絡,Content Delivery Network 介紹 CDN(Content Delivery Network)是一種將內容分發到靠近用戶的邊緣服務器,以加速訪問速度、減少延遲、降低源站壓力的網絡系統。 CDN 把網站的靜態資源(如 HTML、JS、CSS、…

BUCK基本原理學習總結-20250509

一、電感伏秒平衡特性 處于穩定狀態的電感,開關導通時間(電流上升段)的伏秒數須與開關關斷(電流下降段)時的伏秒數在數值上相等,盡管兩者符號相反。這也表示,繪出電感電壓對時間的曲線,導通時段曲線的面積必須等于關斷時段曲線的面積。 二、BUCK的基本概念和原理 基…

【K8S系列】Kubernetes常用 命令

以下為的 Kubernetes 超全常用命令文檔,涵蓋集群管理、資源操作、調試排錯等核心場景,結合示例與解析, 高效運維 Kubernetes 環境。 一、集群與節點管理 1. 集群信息查看 查看集群基本信息kubectl cluster-info # 顯示API Server、DNS等核…

【Django】REST 常用類

ModelSerializer serializers.ModelSerializer 是 Django REST framework(DRF)里的一個強大工具,它能極大簡化序列化和反序列化 Django 模型實例的流程。下面從多個方面詳細介紹它: 1. 基本概念 序列化是把 Django 模型實例轉化…

GuassDB如何創建兼容MySQL語法的數據庫

GaussDB簡介 GaussDB是由華為推出的一款全面支持OLTP和OLAP的分布式關系型數據庫管理系統。它采用了分布式架構和高可靠性設計,可以滿足大規模數據存儲和處理的需求。GaussDB具有高性能、高可靠性和可擴展性等特點,適用于各種復雜的業務場景&#xff0c…

【無標題】I/O復用(epoll)三者區別▲

一、SOCKET-IO復用技術 定義:SOCKET - IO復用技術是一種高效處理多個套接字(socket)的手段,能讓單個線程同時監聽多個文件描述符(如套接字)上的I/O事件(像可讀、可寫、異常)&#x…

spring中的@Qualifier注解詳解

1. 核心作用 Qualifier是Spring框架中用于解決依賴注入歧義性的關鍵注解。當容器中存在多個相同類型的Bean時,Autowired默認按類型自動裝配會拋出NoUniqueBeanDefinitionException異常,此時通過Qualifier指定Bean的唯一標識符(名稱或自定義限…

Python爬蟲實戰:獲取文學網站四大名著并保存到本地

一、引言 1.1 研究背景 中國古典四大名著承載著深厚的文化底蘊,是中華民族的寶貴精神財富。在互聯網時代,網絡文學資源雖豐富多樣,但存在分散、質量參差不齊等問題 。部分文學網站存在訪問限制、資源缺失等情況,用戶難以便捷獲取完整、高質量的經典著作內容。開發專業的爬…

【一】瀏覽器的copy as fetch和copy as bash的區別

瀏覽器的copy as fetch和copy as bash的區別 位置:devTools->network->請求列表右鍵 copy as fetch fetch("https://www.kuaishou.com/graphql", {"headers": {"accept": "*/*","accept-language": &qu…

渠道銷售簡歷模板范文

模板信息 簡歷范文名稱:渠道銷售簡歷模板范文,所屬行業:其他 | 職位,模板編號:KRZ3J3 專業的個人簡歷模板,邏輯清晰,排版簡潔美觀,讓你的個人簡歷顯得更專業,找到好工作…

Java大數據可視化在城市空氣質量監測與污染溯源中的應用:GIS與實時數據流的技術融合

隨著城市化進程加速,空氣質量監測與污染溯源成為智慧城市建設的核心議題。傳統監測手段受限于數據離散性、分析滯后性及可視化能力不足,難以支撐實時決策。2025年4月27日發布的《Java大數據可視化在城市空氣質量監測與污染溯源中的應用》一文&#xff0c…

《面向對象程序設計-C++》實驗五 虛函數的使用及抽象類

程序片段編程題 1.【問題描述】 基類shape類是一個表示形狀的抽象類&#xff0c;area( )為求圖形面積的函數。請從shape類派生三角形類(triangle)、圓類&#xff08;circles&#xff09;、并給出具體的求面積函數。注&#xff1a;圓周率取3.14 #include<iostream> #in…

用c語言實現——一個交互式的中序線索二叉樹系統,支持用戶動態構建、線索化、遍歷和查詢功能

知識補充&#xff1a;什么是中序線索化 中序遍歷是什么 一、代碼解釋 1.結構體定義 Node 結構體&#xff1a; 成員說明&#xff1a; int data&#xff1a;存儲節點的數據值。 struct Node* lchild&#xff1a;該節點的左孩子 struct Node* rchild&#xff1a;該節點的右孩子…

高擬人化客服機器人顯著提升用戶接受度

高擬人化客服機器人顯著提升用戶接受度 目錄 高擬人化客服機器人顯著提升用戶接受度思維導圖詳細總結一、研究背景與目的二、理論基礎與變量設計三、研究方法與實驗設計四、核心結論與策略建議五、研究局限與未來方向關鍵問題與答案高擬人化客服機器人顯著提升用戶接受度,且與…

202534 | KafKa簡介+應用場景+集群搭建+快速入門

Apache Kafka 簡介 一、什么是 Kafka&#xff1f; Apache Kafka 是一個高吞吐量、分布式、可擴展的流處理平臺&#xff0c;用于構建實時數據管道和流應用程序。它最初由 LinkedIn 開發&#xff0c;并于 2011 年開源&#xff0c;目前由 Apache 軟件基金會進行維護。 Kafka 具備…

Blender 初學者指南 以及模型格式怎么下載

glbxz.com glbxz.com 可以直接下載Blender格式模型 第 1 步&#xff1a;打開 這就是 blender 打開時的樣子。 您面對的是左側和右側的工具欄&#xff0c;頂部是文件作&#xff0c;底部是時間軸&#xff0c;中間是 3D 視圖。 Blender 的默認起始網格是一個立方體&#xff0c…

RV1126 ROS2環境交叉編譯及部署(基于官方Docker)

RV1126 ROS2環境交叉編譯及部署(基于官方Docker) 0 前言1 SDK源碼更新1.1 啟動Docker容器1.2 更新SDK源碼1.3 SDK更新問題2 ROS2編譯配置3 Buildroot rootfs編譯ROS2的依賴包3.1 編譯問題解決4 使用Docker交叉編譯ROS24.1 準備Linux(Ubuntu) PC機的依賴環境4.1.1 Ubuntu PC機…

Go 面向對象,封裝、繼承、多態

Go 面向對象&#xff0c;封裝、繼承、多態 經典OO&#xff08;Object-oriented 面向對象&#xff09;的三大特性是封裝、繼承與多態&#xff0c;這里我們看看Go中是如何對應的。 1. 封裝 封裝就是把數據以及操作數據的方法“打包”到一個抽象數據類型中&#xff0c;這個類型…

無線網絡設備中AP和AC是什么?有什么區別?

無線網絡設備中AP和AC是什么&#xff1f;有什么區別&#xff1f; 一. 什么是AP&#xff1f;二. 什么是AC&#xff1f;三. AP與AC的關系 前言 肝文不易&#xff0c;點個免費的贊和關注&#xff0c;有錯誤的地方請指出&#xff0c;看個人主頁有驚喜。 作者&#xff1a;神的孩子都…

Android SDK

Windows純凈卸載Android SDK 1.關閉所有安卓相關的程序 Android StudioEmulators 如模擬器Command prompts using SDK 如appium服務 2.移除SDK相關目錄 # Delete your SDK directory F:\android_sdk\android-sdk-windows# Also check and remove if present: $env:LOCALAPP…