機器篇——決策樹(六) 細說 評估指標的交叉驗證

本小節,細說 評估指標的交叉驗證。
?

三. 評估指標
3. 交叉驗證(cross validation)
? ? ?(1). 概念
? ? ? ?交叉驗證(cross validation, cv) 主要用于模型訓練或建模應用中,如分類預測、PCR、PLS 回歸建模等。在給定的樣本空間中,拿出大部分樣本的模型進行預測,并求這小部分樣本的預測誤差或預測精度,同時記錄它們的加和平均值。這個過程迭代 k

?次,即 k

?折交叉。其中,把每個樣本的預測誤差平凡加和,稱為 PRESS(Predicted Error Sum Of Squares)。

? ? ?(2). 目的
? ? ? ?①. 用交叉驗證的母的是為了得到可靠穩定的模型。在分類,建立 PC 或 PLS 模型時,一個很重要的因素是取多少個主成分的問題。用 cv 校驗每個主成分下的 PRESS 值,選擇 PRESS 值小的主成分數。或 PRESS 值不再變小時的主要分數。

? ? ? ?②. 常用的精度測試方法主要是交叉驗證,例如 10 折交叉驗證(10-fold cross validation, 10-cv),將數據分成 10 份,輪流將其中 9 份做訓練,1 份做驗證,10 次的結果的均值作為對算法精度的估計,一般還需要進行多次 10-cv 求均值,例如:10 次 10-cv,以求更精確一點。

? ? ? ?③. 交叉驗證有時也稱為交叉比對,如:10 折交叉比對。

? ? ?(3). 常見的交叉驗證方式
? ? ? ?①. Holdout 驗證(留出法驗證)

? ? ? ? a. 方法:

? ? ? ? ? ?將原始數據隨機分為兩組,一組作為訓練集,一組作為驗證集(比如:80% 為訓練集,20% 為驗證集)。利用訓練集訓練分類器,然后利用驗證集驗證模型,記錄最后的分類準確率為此 Holdout Method 下分類器的性能指標。

? ? ? ? ? ?一般來說,Holdout 驗證并非一種交叉驗證,因為數據并沒有交叉使用。隨機從最初的樣本中選出部分,形成交叉驗證數據,而剩余的就當做訓練數據。一般來說,少于原來樣本 13
1
3
?的數據被選做驗證數據(如:20% 為驗證數據)

? ? ? ? b. 優點:

? ? ? ? ? ?處理簡單,只需要隨機把原數據分為兩組即可。

? ? ? ? c. 缺點:

? ? ? ? ? ?嚴格意義來說 Holdout Method 并不算是 cv,因為這種方法沒有達到交叉的思想,由于是隨機的將原始數據分組,所以最后驗證集分類準確率的高低與原始數據的分組有很大關系,所以這種方法得到的結果其實并不具有說服性(主要原因是,訓練集樣本數太少,通常不足以代表母體樣本的分布,導致 val 階段辨識容易出現明顯落差)。

? ? ? ?②. k 折交叉驗證 (k-fold cross validation, k-cv)

? ? ? ? a. 方法

? ? ? ? ? ?k 折交叉驗證(k-cv),初始采樣分割成 k 個子樣本,一個單獨的子樣本被保留作為驗證模型數據,其 k - 1 個樣本用來訓練。交叉驗證重復 k 次,每個子樣本驗證一次,平均 k 次的結果或者使用其他結合方式,最終得到一個單一估測。這個方法的優勢在于,同時重復運用隨機產生的子樣本進行訓練和驗證,每次的結果驗證一次,10 折交叉驗證(10-cv)是最常用的。特殊的,當 k = 2 時,為 2-cv。

? ? ? ? b. 優點

? ? ? ? ? ?k-cv 可以有效地避免過擬合以及以及欠擬合狀態的發生,最后得到的結果也比較具有說服性。

? ? ? ? c. 缺點

? ? ? ? ? ?k 值選取上。

? ? ? ?③. 留一驗證(Leave One Out Validation, LOO-CV)

? ? ? ? a. 方法

? ? ? ? ? ?留一驗證(LOO-CV),意指只使用原樣本中的一項來做驗證資料,而剩余的則留下來當做訓練資料。這個步驟一直持續到每個樣本都被當做一次驗證資料。事實上,這等同于 k-cv 是一樣的,其中 k 為原樣本個數。在某些情況下是存在有效率的演算法。如使用 Kernel Regression 和 Tikhonov Regularization。

? ? ? ? b. 優點

? ? ? ? ?(a). 每一回合中幾乎所有的樣本皆用于訓練模型,因此最接近原始樣本的分布,這樣評估所得的結果比較可靠。

? ? ? ? ?(b). 實驗過程中沒有隨機因素會影響實驗數據,確保實驗過程是可以被復制的。

? ? ? ? c. 缺點

? ? ? ? ? ?計算成本高,因為需要建立的模型數量與原始數據樣本數量相同,當原始數據樣本數相當多時,LOO-CV 在實際操作上便有困難,幾乎就是實現不了,除非每次訓練分類器得到模型的速度很快,或是可以用并行化計算減少計算所需要的時間。

? ? ?(4). 深入
? ? ? ?①. 使用交叉驗證方法的目的主要有 3 個:

? ? ? ? a. 從有限的學習數據中獲取盡可能多的有效信息

? ? ? ? b. 交叉驗證從多個方向開始學習樣本,可有效的避免陷入局部最小值

? ? ? ? c. 可以在一定程度上避免過擬合問題

? ? ? ?②. 采用交叉驗證方法時需要將學習數據樣本劃分為兩部分:訓練數據樣本 和 驗證數據樣本。并且為了得到更好的學習效果,無論訓練樣本還是驗證樣本,都要盡可能參與學習。一般選取 10 折交叉驗證即可達到較好的學習效果。
?

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

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

相關文章

HCIA-RS基礎-靜態路由協議

摘要:靜態路由是一種在網絡中廣泛應用的路由選擇方案,它以其簡單的配置和低開銷而備受青睞。本文將介紹靜態路由的配置方法、默認路由的設置、路由的負載分擔和備份策略。通過學習本文,希望可以你能夠掌握靜態路由的基本概念和在華為模擬器中…

貪心算法個人見解

目錄 基本思想: 貪心算法的步驟: 示例: 貪心算法(Greedy Algorithm)是一種基于貪心策略的算法范式,它在每一步選擇中都采取當前狀態下的最優選擇,而不考慮全局最優解。貪心算法通常適用于那些…

U-Boot 之九 詳解 Pinctrl 子系統、命令、初始化流程、使用方法

嵌入式芯片中,引腳復用是一個非常常見的功能,U-Boot 提供一個類似 Linux Kernel 的 Pinctrl 子系統來處理引腳復用功能。正好最近用到了這部分功能,需要移植 Pinctrl 驅動,特此記錄一下學習過程。 架構 U-Boot 提供一個類似 Linux Kernel 的 Pinctrl 子系統,用來統一各芯…

Double 4 VR智能互動教學系統在小語種課堂中的教學應用

小語種課堂一直是教育領域的一個難點。由于語言本身的復雜性和文化背景的差異,小語種教學一直是一個挑戰。傳統的課堂教學方法往往難以激發學生的學習興趣和動力,教學效果不盡如人意。而Double 4 VR智能互動教學系統為小語種課堂帶來了新的可能。 Double…

視頻服務網關的三大部署(三)

視頻網關是軟硬一體的一款產品,可提供多協議(RTSP/ONVIF/GB28181/海康ISUP/EHOME/大華、海康SDK等)的設備視頻接入、采集、處理、存儲和分發等服務, 配合視頻網關云管理平臺,可廣泛應用于安防監控、智能檢測、智慧園區…

RK WiFi部分信道在部分地區無法使用的原因

不同國家支持的WiFi信道不一樣,需要正確設置wificountrycode 修改路徑: device\rockchip\common\BoardConfig.mk 修改內容:androidboot.wificountrycodeXX 該屬性會被解析為 ro.boot.wificountrycode framework層會在: framewor…

用好語言模型:temperature、top-p等核心參數解析

編者按:我們如何才能更好地控制大模型的輸出? 本文將介紹幾個關鍵參數,幫助讀者更好地理解和運用 temperature、top-p、top-k、frequency penalty 和 presence penalty 等常見參數,以優化語言模型的生成效果。 文章詳細解釋了這些參數的作用…

leetcode 343.整數拆分 198.打家劫舍(動態規劃)

OJ鏈接 &#xff1a;leetcode 343.整數拆分 代碼&#xff1a; class Solution {public int integerBreak(int n) {int[] dp new int[n1];//每個n&#xff0c;拆分多個整數乘積的最大值dp [0] 0;dp [1] 1; for(int i 2 ; i<n; i){for(int j 0 ; j < i; j){dp[i] Ma…

如何看待數據確權問題?

今年8月&#xff0c;財政部發布了《關于印發<企業數據資源相關會計處理暫行規定>的通知》&#xff0c;將數據規劃到公司資產負債表的“資產”項&#xff0c;明確了哪些數據資源可以計入無形資產、存貨等資產項&#xff0c;從財務、會計處理角度對企業對數據資源享有的權利…

學習Java第52天,JDBC中statement的使用基本步驟

public class JdbcStatementQueryPart { /* * TODO: 步驟總結 (6步)* 1. 注冊驅動* 2. 獲取連接* 3. 創建statement* 4. 發送SQL語句,并獲取結果* 5. 結果集解析* 6. 關閉資源 */public static void main(String[] args) throws SQLException {//1.注冊驅動/…

小程序中的大道理--綜述

前言 以下將用一個小程序來探討一些大道理, 這些大道理包括可擴展性, 抽象與封裝, 可維護性, 健壯性, 團隊合作, 工具的利用, 可測試性, 自頂向下, 分而治之, 分層, 可讀性, 模塊化, 松耦合, MVC, 領域模型, 甚至對稱性, 香農的信息論等等. 為什么不用大程序來說大道理呢? …

CMS指紋識別方式

一、手工識別 1.robots.txt文件 robots.txt文件我們寫過爬蟲的就知道,這個文件是告訴我們哪些目錄是禁止爬取的。但是大部分的時候我們都能通過robots.txt文件來判斷出cms的類型 如: 從wp路徑可以看出這個是WordPress的cms 這個就比較明顯了直接告訴我們是PageAdmin cms 也…

Python大語言模型實戰-記錄一次用ChatDev框架實現爬蟲任務的完整過程

1、模型選擇&#xff1a;GPT4 2、需求&#xff1a;在win10操作系統環境下&#xff0c;基于python3.10解釋器&#xff0c;爬取豆瓣電影Top250的相關信息&#xff0c;包括電影詳情鏈接&#xff0c;圖片鏈接&#xff0c;影片中文名&#xff0c;影片外國名&#xff0c;評分&#x…

C語言小練

給定兩個數&#xff0c;求這兩個數的最大公約數 本算法主要利用輾轉相除法求出兩個數的最大公約數。 int main(){int m0;int n0;int r0;scanf("%d %d",&m,&n);while(rm%n){mn;nr;} printf("%d\n",n);return 0; } 打印斐波那契數列指定位置的值 …

工作中Git常用命令

Git config --global user.name ‘sn’設置身份名字 Git config--global user.email “ 17909098592qq.com“ 設置郵箱 Git init 創建代碼倉庫 Ls -al 查看所有目錄 Git pull <遠程倉庫名> <遠程分支名>代碼更新 Git add file.txt 添加file.txt到git提交器 …

python的requests請求參數帶files

踩坑接口請求參數含文件 requests接口請求既有file&#xff0c;也有json。劃重點params requests 官網地址 https://requests.readthedocs.io/en/stable/user/quickstart/#post-a-multipart-encoded-file 接口請求既有file&#xff0c;也有json。劃重點params import reques…

kali一鍵部署各種環境和滲透工具

相信各位初入滲透領域的小伙們接觸了kali,但是苦于要配置各種環境,安裝kali沒有的工具,費時費力,博主有時候需要重新部署kali也很苦惱,所以編寫一鍵部署安裝kali腳本,下載地址在這里:https://download.csdn.net/download/weixin_59679023/88565320 配置流程: 1、找一…

Linux加強篇002-部署Linux系統

目錄 前言 1. shell語言 2. 執行命令的必備知識 3. 常用系統工作命令 4. 系統狀態檢測命令 5. 查找定位文件命令 6. 文本文件編輯命令 7. 文件目錄管理命令 前言 悟已往之不諫&#xff0c;知來者之可追。實迷途其未遠&#xff0c;覺今是而昨非。舟遙遙以輕飏&#xff…

Debian12試用報告

環境: win11vbox 虛擬機 網絡: host-only訪問局域網 nat 訪問外網, 配置為dhcp動態獲取ip 遇到的問題: 偶爾卡死: nat每次開機都不生效, 外網無法訪問; 開機后 重啟網絡可解決 sudo /etc/init.d/networking restart host-only倒是沒問題, 內網正常訪問 vim9還是用不習…