交叉驗證(Cross Validation)


交叉驗證(Cross Validation)
常見的交叉驗證方法如下:

1、簡單交叉驗證

 

將原始數據隨機分為兩組,一組做為訓練集,一組做為驗證集,利用訓練集訓練分類器,然后利用驗證集驗證模型,記錄最后的分類准確率為此分類器的性能指標。

好處:

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

壞處:

但沒有達到交叉的思想,由於是隨機的將原始數據分組,所以最后驗證集分類准確率的高低與原始數據的分組有很大的關系,得到的結果並不具有說服性。

2、2-折交叉驗證(2-fold Cross Validation,記為2-CV)

做法是將數據集分成兩個相等大小的子集,進行兩次的分類器訓練。在第一次中,一個子集作為訓練集,另一個便作為測試集;在第二次訓練中,則將訓練集與測試集對換,

其並不常用:

主要原因是訓練集樣本數太少,不足以代表母體樣本的分布,導致te測試階段辨識率容易出現明顯落差。

3、K-折交叉驗證(K-fold Cross Validation,記為K-CV)

 

將原始數據分成K組(一般是均分),將每個子集數據分別做一次驗證集,其余的K-1組子集數據作為訓練集,這樣會得到K個模型,用這K個模型最終的驗證集的分類准確率的平均數作為此K-CV下分類器的性能指標。K一般大於等於2,實際操作時一般從3開始取,只有在原始數據集合數據量小的時候才會嘗試取2。

應用最多,K-CV可以有效的避免過擬合與欠擬合的發生,最后得到的結果也比較具有說服性。

Eg:

十折交叉驗證

1.     將數據集分成十份,輪流將其中9份作為訓練數據,1份作為測試數據,進行試驗。每次試驗都會得出相應的正確率。

2.     10次的結果的正確率的平均值作為對算法精度的估計,一般還需要進行多次10折交叉驗證(例如10次10折交叉驗證),再求其均值,作為對算法准確性的估計

此外:

1.     多次 k 折交叉驗證再求均值,例如:10 次10 折交叉驗證,以求更精確一點。

2.     划分時有多種方法,例如對非平衡數據可以用分層采樣,就是在每一份子集中都保持和原始數據集相同的類別比例。

3.     模型訓練過程的所有步驟,包括模型選擇,特征選擇等都是在單個折疊 fold 中獨立執行的。

4、留一交叉驗證(Leave-One-Out Cross Validation記為LOO-CV)

在數據缺乏的情況下使用,如果設原始數據有N個樣本,那么LOO-CV就是N-CV,即每個樣本單獨作為驗證集,其余的N-1個樣本作為訓練集,故LOO-CV會得到N個模型,用這N個模型最終的驗證集的分類准確率的平均數作為此下LOO-CV分類器的性能指標。

優點:

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

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

缺點:

計算成本高,需要建立的模型數量與原始數據樣本數量相同。當數據集較大時幾乎不能使用。
————————————————
版權聲明:本文為CSDN博主「慧132054308」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_40475450/article/details/80578943


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM