Just a Computer Graphics Studio & My Life

交叉驗證 (Cross Validation)

研究過LibSVM]SVM 實驗最佳化參數,原本以為只要將Data Set平分為兩半,一半是Train Set,一半是Test Set即可,因為我讀了這篇論文Example-Based Image Color and Tone Style Enhancement也這麼做,要是它使用交叉驗證 (Cross Validation)的話,準確率想必可以再提昇,這個議題還能拿來再研究呢!

根據WiKi所描述:

交叉驗證 (Cross Validation),有時亦稱循環估計,是一種統計學上將數據樣本切割成較小子集的實用方法。於是可以先在一個子集上做分析, 而其它子集則用來做後續對此分析的確認及驗證。一開始的子集被稱為訓練集(training set)。而其它的子集則被稱為驗證集(validation set)測試集(testing set)

K-fold cross-validation K折交叉驗證

K次交叉驗證,初始採樣分割成K個子樣本,一個單獨的子樣本被保留作為驗證模型的數據,其他K-1個樣本用來訓練。交叉驗證重複K次,每個子樣本驗證一次,平均K次的結果或者使用其它結合方式,最終得到一個單一估測。這個方法的優勢在於,同時重複運用隨機產生的子樣本進行訓練和驗證,每次的結果驗證一次,10次交叉驗證是最常用的。

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

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

下面引用的文章是為台大生所做的比喻:正妹自動辨識與特徵分析。其實就跟我上頭貼的圖示(它只分三堆)一樣,只是把Data Set (正妹)平分成10堆,我只看過其中後面9堆,第1堆拿來測試我,來看分類的準確度怎麼樣。接下來重新(之前的記憶洗掉)繼續做9次;拿第2堆來測試我,而其它9堆我看過;拿第3堆來測試我,而其它9堆我看過……最後將10次測試的準確度平均,就是我要的準確度。

這裡還有一張圖,可加深交叉驗證 (Cross Validation)的印象。

clssifier.cross.validation

參考:WiKi – 交叉驗證Cross-validation時自動切Fold的小工具

廣告

發表留言

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

標籤雲

%d 位部落客按了讚: