十折交叉驗證

2021-10-01 01:38:22 字數 1121 閱讀 9140

交叉驗證主要分成以下幾類:

1)k-folder cross-validation:k個子集,每個子集均做一次測試集,其餘的作為訓練集。交叉驗證重複k次,每次選擇乙個子集作為測試集,並將k次的平均交叉驗證識別正確率作為結果。優點:所有的樣本都被作為了訓練集和測試集,每個樣本都被驗證一次。10-folder通常被使用。

2)k * 2 folder cross-validation是k-folder cross-validation的乙個變體,對每乙個folder,都平均分成兩個集合s0,s1,我們先在集合s0訓練用s1測試,然後用s1訓練s0測試。優點是:測試和訓練集都足夠大,每乙個個樣本都被作為訓練集和測試集。一般使用k=10

3)least-one-out cross-validation(loocv)假設dataset中有n個樣本,那loocv也就是n-cv,意思是每個樣本單獨作為一次測試集,剩餘n-1個樣本則做為訓練集。

優點:1)每一回合中幾乎所有的樣本皆用於訓練model,因此最接近母體樣本的分布,估測所得的generalization error比較可靠。

2)實驗過程中沒有隨機因素會影響實驗資料,確保實驗過程是可以被複製的。但loocv的缺點則是計算成本高,為需要建立的models數量與總樣本數量相同,當總樣本數量相當多時,loocv在實作上便有困難,除非每次訓練model的速度很快,或是可以用平行化計算減少計算所需的時間。

-------十折交叉驗證:10-fold cross validation-------

英文名叫做10-fold cross-validation,用來測試演算法準確性。是常用的測試方法。將資料集分成十分,輪流將其中9份作為訓練資料,1份作為測試資料,進行試驗。每次試驗都會得出相應的正確率(或差錯率)。10次的結果的正確率(或差錯率)的平均值作為對演算法精度的估計,一般還需要進行多次10折交叉驗證(例如10次10折交叉驗證),再求其均值,作為對演算法準確性的估計。

之所以選擇將資料集分為10份,是因為通過利用大量資料集、使用不同學習技術進行的大量試驗,表明10折是獲得最好誤差估計的恰當選擇,而且也有一些理論根據可以證明這一點。但這並非最終診斷,爭議仍然存在。而且似乎5折或者20折與10折所得出的結果也相差無幾。

十折交叉驗證 crossvalind函式

indices crossvalind kfold n,k 該命令返回乙個對於n個觀察樣本的k個fold 意為折,有 層 之類的含義,感覺還是英文意思更形象 的標記 indices 該標記中含有相同 或者近似相同 比例的1 k的值,將樣本分為k個相斥的子集。在k fold交叉檢驗中,k 1個fold...

深度學習 十折交叉驗證

用scikit learn來評價模型質量,為了更好地挑揀出結果的差異,採用了十折交叉驗證 10 fold cross validation 方法。本程式在輸入層和第乙個隱含層之間加入20 dropout 採用十折交叉驗證的方法進行測試。dropout in the input layer with ...

十折交叉驗證和混淆矩陣

前面提到了資料集分為訓練集和測試集,訓練集用來訓練模型,而測試集用來測試模型的好壞,那麼單一的測試是否就能很好的衡量乙個模型的效能呢?答案自然是否定的,單一的測試集具有偶然性和隨機性。因此本文介紹一種衡量模型 比如分類器 效能的方法 十折交叉驗證 10 fold cross validation 什...