1、為什么要進行交叉驗證?
目的:為了得到可靠穩定的模型
交叉驗證是一種模型選擇方法,其將樣本的一部分用于訓練,另一部分用于驗證。因此不僅考慮了訓練誤差,同時也考慮了泛化誤差。
2、交叉驗證的概念
交叉驗證(Cross Validation),簡稱CV,它是用來驗證分類器的性能一種統計分析方法。
基本思想:
將原始的數據集進行分組,一部分作訓練集,一部分作為驗證集,首先用訓練集對分類器進行訓練,再用驗證集來測試訓練集得到的模型,以此來作為評價分類器的性能指標。
為了減少交叉驗證結果的可變性,對一個樣本數據集進行多次不同的劃分,得到不同的互補子集,進行多次交叉驗證。取多次驗證的平均值作為驗證結果。
PRESS:
在給定的建模樣本中,拿出大部分樣本進行建模型,留小部分樣本用剛建立的模型進行驗證,并求這小部分樣本的驗證誤差,記錄它們的平方加和。這個過程一直進行,直到所有的樣本都被驗證了一次而且僅被驗證一次。把每個樣本的預報誤差平方加和,叫PRESS(predicted Error Sum of Squares)。
3、交叉驗證有哪些方法?
(一)Hold-Out Method
思路:
將原始數據分為兩組,一組是訓練集,一組是驗證集,利用訓練集來訓練分類器,然后利用驗證集驗證模型。進行多次劃分,用均值來表示效能。
優點:
簡單,只需要將原始數據隨機的分成兩組就行了。
缺點:
(1)沒有達到交叉的效果。
(2)隨機分組,驗證集分類的準確率與原始數據分組的關系很大。
(3)有些數據可能從未做過訓練或測試數據;而有些數據不止一次選為訓練或測試數據。
(二)K-fold Cross Validation(K-CV)
思路:
將原始數據均分成K組,每個子集數據分別做一次驗證集,其余的K-1組子集數據作為訓練集,這樣會得到K個模型,用這K個模型最終驗證集的分類準確率的平均數作為此K-CV分類器下的性能指標。
K的取值:
一般是大于等于2,只有在原始數據集合數據量小的時候才會取2
優點:
有效的避免過擬合和欠擬合
(三)Leave-One-Out Cross Validation(LOO-CV)
思路:
假設原始數據有N個樣本,其實LOO-CV也就是N-CV,每個樣本單獨的作為驗證集,其余的N-1個樣本作為訓練集,所以LOO-CV會得到N個模型,用這N個模型的最終的驗證集的分類準確率的平均數作為此LOO-CV分類器的性能指標。
優點:
(1)每輪中幾乎所有的樣本都可以用于訓練模型,因此能夠使訓練的模型最接近樣本真實分布,評估的結果很可靠。
(2)實驗的過程中沒有隨機因素。
缺點:
如果樣本量很大,那么需要建立的模型的數量也很大,計算成本高。
4、模型選擇過程
在了解交叉驗證之后,簡單介紹模型的選擇過程:
通過采用不同的輸入訓練樣本,來決定機器學習算法中包含的各個參數值,叫做模型選擇。
(1)首先準備q個候選的模型
(2)對每個模型求解它的學習結果
(3)對學習誤差排序,選擇誤差最小的模型作為最終的模型
舉例:將有標注的data分為訓練集,(交叉)驗證集,測試集三份:
在做模型選擇,更確切的說做模型參數選擇的時候,這里以多項式kernel的SVM為例,我們需要選擇的參數是多項式的階數:
1 訓練:先用訓練集在一次模型、二次模型、三次模型(幾次指的是的z=Zθ(x) 階數)情況下跑一下,然后用數值優化的算法求得在指定階數情況下,使Training error最小的參數θ分別是多少
2 參數尋優:用交叉驗證集在1中得到的每個模型M(1,θ1)...M(k,θk)...M(n,θn)跑一下,計算出Cross Validation error,選擇使這個error最小的模型次數k
3 最終訓練:給定階數k,訓練得出在Training Set+CV Set上,使Training error最小的參數θ,得到模型M(k,θk')
總結:
利用n-fold交叉驗證,是現在做機器學習實驗最常用的做法
(1)數據按比例劃分為訓練集A、測試集B
(2)使用訓練數據A進行n-fold驗證,訓練集分為a1~an共n份,n份中的每一份ai輪流做CV set,其余n-1份作為Training set,這樣訓練n次,取n次所得CV error平均值作為一個模型最終的CV error,以此選出最優模型參數。
(3) 再用整個訓練集A在選出的最優模型參數下訓練出一個模型。
(4)最后在測試集B上測試給出結果。
NG課程小結:
就拿選擇階數的例子來說,如果我們把數據集分成了訓練集和測試集,用訓練集來進行參數的確定,用測試集來選擇階數d,再用測試集測模型是不準的;所以我們分成了三部分:訓練集、驗證集、測試集。其中驗證集做的就是確定階數d,用測試集來查看其泛化能力。
參考資料:
http://blog.csdn.net/chl033/article/details/4671750
http://blog.sina.com.cn/s/blog_688077cf0100zqpj.html
https://www.zhihu.com/question/23561944
http://www.cnblogs.com/wei-li/archive/2011/12/01/2270244.html