2 資料集劃分與效能度量

2021-10-09 15:12:57 字數 2806 閱讀 4055

三、調參與最終模型

四、 效能度量

一、 經驗誤差與過擬合

二、 資料集劃分

1. 留出法

留出法直接將資料集d劃分為兩個互斥的集合,其中乙個作為訓練集s,另乙個作為測試集t。

常見做法為:1/5 ~ 1/3 樣本作為測試集

訓練/測試集的劃分要盡可能保持資料分布的一致性,避免因資料劃分而引入的額外偏差。

因此,單獨的使用留出發得到的估計結果往往不夠穩定可靠,在使用留出法時,一般要採用若干次隨機劃分,重複進行實驗評估後取平均值作為留出法的評估結果。

2. 交叉驗證法

交叉驗證法先將資料集d劃分為k個大小相似的互斥子集,每個子集盡可能保持資料分布的一致性,即從d中通過分層取樣得到。每次用k-1個子集的並集作為訓練集,餘下的那個作為測試集。從而進行k次訓練和測試,最終返回k個測試結果的均值。通常將交叉驗證法稱為: k折交叉驗證。
與留出法相似,將資料集d劃分為k個子集的方式有多種,為減小因樣本劃分不同而引起的差別,k折交叉驗證通常要隨機使用不同的劃分重複p次,最終評估結果為這p次k折交叉驗證的均值,例如常見的有10次10折交叉驗證

假定d中包含m個樣本,若令k = m,則得到了交叉驗證法的乙個特例:留一法

留一法不受隨機樣本劃分方式的影響,因此留一法的評估結果往往比較準確。不過也有缺陷:在資料集較大的時候計算開銷較大。
3. 自助法
給定m個樣本的資料集d,對其取樣產生資料集d2:每次隨機從d中挑選乙個樣本,將其拷貝放入d2,然後將樣本放回d,使得該樣本在下次取樣時仍有可能被採到。這個過程執行m次後,就得到了包含m個樣本的資料集d2
經過數學極限的計算,初始資料集d中越有36.8%的樣本未出現在取樣資料集d2中。於是,可將d2當作訓練集,d\d2當作測試集("\ "表示集合減法)

自助法在資料集較小、難以有效劃分訓練、測試集時很有用。此外,自助法能從初始資料集中產生較多不同的訓練集,這對整合學習等方法有很大好處。然而,改變了初始資料集的分布會引入估計偏差。因此,在初始資料量足夠的情況下,留出法和交叉驗證法更常用一些。

三、調參與最終模型

在進行模型評估與選擇時,除了要對使用學習的演算法進行選擇,還要對引數進行設定。

在模型選擇完成後,學習演算法和引數配置已經設定,此時應用資料集d重新訓練模型,而不是訓練集,這才是最終提交給使用者的模型。

四、 效能度量

1、 回歸

回歸任務最常用的效能度量是「均方誤差」

2. 分類

1. 錯誤率和精度

這是分類任務中最常用的兩種效能度量,既適用於二分類任務,也適用於多分類任務。

錯誤率是分類錯誤的樣本佔樣本總數的比例;精度是分類正確的樣本數佔樣本總數的比例。

2. 查準率、查全率和f1

由於錯誤率和精度將每個類看的同等重要,因此不適合用來分析類不平衡資料集

在類不平衡資料集中,正確分類稀有模擬正確分類更多類更有意義。此時查準率和查全率比準確率和錯誤率更合適。對於二分問題,稀有類樣本通常標記為正例,而多數類樣本標記為負例。
統計真實標記和**結果的組合可以得到如下所示的混淆矩陣:

p-r曲線

以查準率為縱軸、查全率為橫軸作圖,得到p-r曲線

當兩條曲線交叉時可用以下判斷:

若有多個二分類混淆矩陣(全域性):

先在混下矩陣上分別計算出查準率和查全率,記為 (p1,r1),(p2,r2),(p3,r3),(p4,r4)...再計算平均值,這樣就得到**巨集查詢率(macro-p),巨集查全率(macro-r),以及相應的巨集f1   :

還可先將各混淆矩陣的對應元素進行平均,得到tp、fp、tn、fn的平均值,再基於這些平均值計算出微查準率、微查全率、微f1

3. roc和auc

4. 代價敏感錯誤率與代價曲線

為均衡不同型別錯誤所照成的不同的損失,為錯誤賦予非均等代價,以二分類為例,引入了代價矩陣:

在非均等代價下,我們所希望的不再是簡單的最小化錯誤次數,而是希望最小化總體代價

西瓜書 資料集分割與效能度量

我們平時做機器學習的時候,總是會將資料集分成兩個互斥的子集。這兩個子集分別作為訓練集和測試集。而為什麼我們一定要這樣做呢?直接在訓練集上輸出錯誤率或精度不就好了嗎?我們總是留出一部分樣本作為測試集的原因是因為過擬合的不可避免。過擬合 模型將訓練樣本的某些特點當做是所有潛在樣本都具有的一般性質,導致模...

資料集按類劃分 資料集劃分方法

留出法 直接將資料集d劃分為兩個互斥的集合,乙個為訓練集s,乙個為測試集t,即d s t,s t 在s上進行模型學習,然後用t來評估其測試誤差,作為對泛化誤差的估計。單次使用留出法得到的估計結果往往不夠穩定可靠,在使用留出法時,一般要採用若干次隨機劃分 重複進行模型評估後取平均值作為留出法的評估結果...

劃分測試集與訓練集

cnn datasets為自有資料集,np.random.permutation操作為打亂資料 函式shuffle也是是對原來的陣列進行重新洗牌 即隨機打亂原來的元素順序 區別在於shuffle直接在原來的陣列上進行操作,改變原來陣列的順序,無返回值。而permutation不直接在原來的陣列上進行...