機器學習第13天:模型性能評估指標

?

??主頁?Nowl

🔥專欄《機器學習實戰》?《機器學習》

📑君子坐而論道,少年起而行之?

文章目錄

交叉驗證

保留交叉驗證

k-折交叉驗證

留一交叉驗證

混淆矩陣

精度與召回率

介紹

精度

召回率

區別

使用代碼

偏差與方差

介紹

區別


交叉驗證

保留交叉驗證

介紹

將數據集劃分為兩部分,訓練集與測試集,這也是簡單任務中常用的方法,其實沒有很好地體現交叉驗證的思想

使用代碼

# 導入庫
from sklearn.model_selection import train_test_split# 劃分訓練集與測試集,參數分別為總數據集,測試集的比例
train, test = train_test_split(data, test_size=0.2)

k-折交叉驗證

介紹

將數據集劃分為k個子集,每次采用k-1個子集作為訓練集,剩下的一個作為測試集,然后再重新選擇,使每一個子集都做一次測試集,所以整個過程總共訓練k次,得到k組結果,最后將這k組結果取平均,得到最終結果,這就是交叉驗證的思想

?

使用代碼

# 導入庫
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_val_score# 設置K值,這里假設K=5
k_fold = KFold(n_splits=5, shuffle=True, random_state=42)# 初始化模型,這里以隨機森林為例
model = RandomForestClassifier()# 使用K折交叉驗證
scores = cross_val_score(model, X, y, cv=k_fold)

留一交叉驗證

介紹

與k折驗證思想一致,只是子集的數量和數據集的大小一樣,往往在數據集較小的時候使用這種方法

混淆矩陣

介紹

在分類任務中,我們可以用混淆矩陣來判斷模型的性能,混淆矩陣記錄了A類被分為B類的次數,以下是一個動物識別任務的混淆矩陣,要知道cat被預測成了幾次dog,那么就查看混淆矩陣的第1行第2列

?

使用代碼

# 導入庫
from sklearn.metrics import confusion_matrix# 打印混淆矩陣,參數為真實結果與預測結果
print(confusion_matrix(y, y_pred))

精度與召回率

介紹

?

要解釋精度與召回率,我們先定義幾個量

TP:模型預測為正且真實值為正的數量

FP:模型預測為正且真實值為負的數量

FN:模型預測為負且真實值為正的數量

精度

\frac{TP}{TP+FP}

精度就是模型正確預測的正類在所有預測為正類中的比例

召回率

\frac{TP}{TP+FN}

召回率就是模型正確預測的正類在所有正類中的比例

區別

可能還是有點混淆?其實精度高就是寧愿不預測,也不愿意預測錯,召回率高就是寧愿預測錯,也不愿意遺漏正類,我們具體來看兩個場景

在地震預測中,我們是要提高召回率還是精度?顯而易見,召回率,因為我們寧愿預測器錯誤地提醒我們,也不愿意當地震來臨時它不報警

那么在食品檢測中呢?當然要提高精度,因為我們寧愿健康的食品被誤判為不合格,也不愿意有不合格的食品進入市場

召回率與精度兩個指標不可兼得,我們要根據具體任務做出取舍

使用代碼

# 導入庫
from sklearn.metrics import precision_score, recall_score# 使用精度評估函數,參數是真實結果與預測結果
print(precision_score(y, y_pred))# 使用召回率評估函數,參數是真實結果與預測結果
print(recall_score(y, y_pred))

偏差與方差

介紹

偏差衡量一個模型預測結果和真實值的差距,偏差高往往代表模型欠擬合

方差衡量模型在不同數據集上預測的差異,方差高往往代表模型過擬合

?

區別

具有高偏差的模型對訓練數據和新數據的表現都較差,因為它們未能捕捉到數據的復雜性。

具有高方差的模型在訓練數據上可能表現得很好,但對新數據的泛化能力差,因為它們過于依賴于訓練數據的細節。

結語

機器學習模型性能測量對于評估模型的質量、選擇最佳模型、調整模型超參數以及在實際應用中預測新數據都具有重要意義。

  1. 評估模型質量: 通過性能測量,你可以了解模型在訓練數據上的表現如何。這有助于判斷模型是否足夠復雜以捕捉數據中的模式,同時又不過度擬合訓練數據。

  2. 選擇最佳模型: 在比較不同模型時,性能測量是選擇最佳模型的關鍵因素。你可以通過比較模型在相同任務上的性能指標來確定哪個模型更適合你的問題。

  3. 調整模型超參數: 通過觀察模型在不同超參數設置下的性能,你可以調整超參數以提高模型的性能。性能測量可以指導你在超參數搜索空間中尋找最佳設置。

  4. 評估泛化能力: 模型在訓練數據上表現良好并不一定意味著它在新數據上也能表現良好。性能測量幫助你評估模型的泛化能力,即模型對未見過的數據的預測能力。

  5. 支持業務決策: 在實際應用中,模型的性能直接關系到業務的決策。例如,在醫療領域,一個精確的疾病預測模型可能影響患者的治療計劃。

  6. 改進模型: 通過分析性能測量的結果,你可以識別模型的弱點,并采取相應的措施來改進模型,例如增加訓練數據、特征工程、選擇更合適的模型等。

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

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

相關文章

zerotier 搭建 moon中轉服務器 及 自建planet

搭建moon 服務器 環境準備 # 安裝依賴 yum install wget gcc gcc-c git -y yum install json-devel -y# 下載及安裝 curl -s https://install.zerotier.com/ | sudo bash節點ID 配置 配置moon.json文件 cd /var/lib/zerotier-one/# 導出依賴 zerotier-idtool initmoon ide…

SpringBoot項目連接,有Kerberos認證的Kafka

在連接Kerberos認證kafka之前,需要了解Kerberos協議 二、什么是Kerberos協議 Kerberos是一種計算機網絡認證協議 ,其設計目標是通過密鑰系統為網絡中通信的客戶機(Client)/服務器(Server)應用程序提供嚴格的身份驗證服務,確保通信雙方身份的真…

Spring Boot 升級3.x 指南

Spring Boot 升級3.x 指南 1. 升級思路 先創建一個parent項目&#xff0c;打包類型為pom&#xff0c;繼承自spring boot的parent項目 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId&…

歷時三個月,我發布了一款外賣返錢小程序

近幾年&#xff0c;推廣外賣紅包爆火&#xff0c;各種推廣外賣紅包的公眾號層出不窮。于是&#xff0c;我就在想外賣紅包究竟是怎么一回事。就這樣&#xff0c;我帶著問題開始了關于外賣紅包的研究。 在研究的過程中&#xff0c;我開始了解商品聯盟、推廣分成、cps等一系列相關…

網絡攻擊當搭配什么產品比較好

網絡攻擊無處不在&#xff0c;當要時刻謹記 2014年&#xff0c;索尼影業受到黑客攻擊&#xff0c;導致公司內部文件和電子郵件泄露。 2015年&#xff0c;美國聯邦政府的辦公人員信息遭到盜竊&#xff0c;影響了超過2100萬人的個人信息。 2016年&#xff0c;Yahoo的3億用戶賬…

java 中集合之一【map】,map循環

在Java中&#xff0c;常用的集合框架有以下幾個&#xff1a; 1、List&#xff08;列表&#xff09;&#xff1a;List是有序的集合&#xff0c;允許包含重復元素。常用的實現類有ArrayList和LinkedList。ArrayList是基于動態數組實現的&#xff0c;支持快速隨機訪問&#xff1b;…

android之圖片選擇器--pictureselector

推薦一個安卓圖片/視頻/文件選擇器。簡單好用。 不多廢話。直接上代碼&#xff1a; 首先&#xff0c;添加依賴&#xff1a; //圖片選擇器api io.github.lucksiege:pictureselector:v3.11.1//圖片壓縮api io.github.lucksiege:compress:v3.11.1//圖片裁剪api io.github.lucksie…

Springboot3+vue3從0到1開發實戰項目(一)

一. 可以在本項目里面自由發揮拓展 二. 知識整合項目使用到的技術 后端開發 &#xff1a; Validation, Mybatis,Redis, Junit,SpringBoot3 &#xff0c;mysql&#xff0c;Swagger, JDK17 &#xff0c;項目部署 前端開發&#xff1a; Vue3&#xff0c;Vite&#xff0c;Router…

Java數組和集合

在Java中&#xff0c;數組和集合是兩個重要的概念&#xff0c;它們用于存儲和操作數據。本文將詳細介紹Java中的數組和集合&#xff0c;包括它們的定義、初始化、訪問和常見操作 一、數組&#xff08;Array&#xff09; 數組是一種用于存儲相同類型數據的容器&#xff0c;它可…

DNS的各種進階新玩法

你們好&#xff0c;我的網工朋友&#xff0c;今天和你聊聊DNS。 01 什么是DNS&#xff1f; mac地址誕生&#xff0c;可是太不容易記憶了&#xff0c;出現了簡化了IP形式&#xff0c;它被直接暴露給外網不說&#xff0c;還讓人類還是覺得比較麻煩&#xff0c;干脆用幾個字母算了…

【Git】一文教你學會 submodule 的增、刪、改、查

添加子模塊 $ git submodule add <url> <path>url 為想要添加的子模塊路徑path 為子模塊存放的本地路徑 示例&#xff0c;添加 r-tinymaix 為子模塊到主倉庫 ./sdk/packages/online-packages/r-tinymaix 路徑下&#xff0c;命令如下所示&#xff1a; $ git subm…

用自己熱愛的事賺錢,是多么的幸福

挖掘天賦可能有些困難&#xff0c;但挖掘愛好就簡單多啦&#xff01;最幸福的事情就是能用自己喜歡的事情賺錢。 我們要說的是一個博主&#xff0c;他非常喜歡騎自行車&#xff0c;雖然他的工作是在外貿公司做銷售&#xff0c;但每當有空時&#xff0c;他都會騎自行車。而且他…

Nginx同時支持Http和Https的配置詳解

當配置Nginx同時支持HTTP和HTTPS時&#xff0c;需要進行以下步驟&#xff1a; 安裝和配置SSL證書&#xff1a; 獲得SSL證書&#xff1a;從可信任的證書頒發機構&#xff08;CA&#xff09;或使用自簽名證書創建SSL證書。 將證書和私鑰保存到服務器&#xff1a;將SSL證書和私鑰…

spring 的事務隔離;Spring框架的事務管理的優點

文章目錄 說一下 spring 的事務隔離&#xff1f;Spring框架的事務管理有哪些優點&#xff1f;你更傾向用哪種事務管理類型&#xff1f; 聊一聊spring事務的隔離&#xff0c;事務的隔離對于一個系統來說也是非常重要的&#xff0c;直接上干貨&#xff01;&#xff01;&#xff0…

Python與設計模式--享元模式

10-Python與設計模式–享元模式 一、網上咖啡選購平臺 假設有一個網上咖啡選購平臺&#xff0c;客戶可以在該平臺上下訂單訂購咖啡&#xff0c;平臺會根據用戶位置進行 線下配送。假設其咖啡對象構造如下&#xff1a; class Coffee:name price 0def __init__(self,name):se…

Go iota簡介

當聲明枚舉類型或定義一組相關常量時&#xff0c;Go語言中的iota關鍵字可以幫助我們簡化代碼并自動生成遞增的值。本文檔將詳細介紹iota的用法和行為。 iota關鍵字 iota是Go語言中的一個預定義標識符&#xff0c;它用于創建自增的無類型整數常量。iota的行為類似于一個計數器…

數據庫基礎入門 — SQL排序與分頁

我是南城余&#xff01;阿里云開發者平臺專家博士證書獲得者&#xff01; 歡迎關注我的博客&#xff01;一同成長&#xff01; 一名從事運維開發的worker&#xff0c;記錄分享學習。 專注于AI&#xff0c;運維開發&#xff0c;windows Linux 系統領域的分享&#xff01; 本…

[深度理解] 重啟 Splunk Search Head Cluster

1: 背景: 關于釋放Splunk search head 的job 運行壓力:splunk search head cluster 要重啟的話,怎么辦? 答案是:splunk rolling-restart shcluster-members Initiate a rolling restart from the command line Invoke the splunk rolling-restart command from any me…

3款免費次數多且功能又強大的國產AI繪畫工具

hi&#xff0c;同學們&#xff0c;本期是我們第55 期 AI工具教程 最近兩個月&#xff0c;國內很多AI繪畫軟件被關停&#xff0c;國外絕大部分AI繪畫工具費用不低&#xff0c;因此 這兩天我 重新整理 國產 AI繪畫 工具 &#xff0c; 最終 篩選了 3款功能強大&#xf…

LeeCode前端算法基礎100題(3)- N皇后

一、問題詳情&#xff1a; 按照國際象棋的規則&#xff0c;皇后可以攻擊與之處在同一行或同一列或同一斜線上的棋子。 n 皇后問題 研究的是如何將 n 個皇后放置在 nn 的棋盤上&#xff0c;并且使皇后彼此之間不能相互攻擊。 給你一個整數 n &#xff0c;返回所有不同的 n 皇后…