交叉驗證(Cross Validation)是用來驗證分類器的效能一種統計分析方法,基本思想是把在某種意義下將原始資料(dataset)進行分組,一部分做為訓練集(training set),另一部分做為驗證集(validation set),首先用訓練集對分類器進行訓練,在利用驗證集來測試訓練得到的模型(model),以此來做為評價分類器的效能指標。常見的交叉驗證方法如下:1、Hold-Out Method
將原始資料隨機分為兩組,一組做為訓練集,一組做為驗證集,利用訓練集訓練分類器,然後利用驗證集驗證模型,記錄最後的分類準確率為此分類器的效能指標。此種方法的好處的處理簡單,只需隨機把原始資料分為兩組即可,其實嚴格意義來說Hold-Out Method並不能算是CV,因為這種方法沒有達到交叉的思想,由於是隨機的將原始資料分組,所以最後驗證集分類準確率的高低與原始資料的分組有很大的關係,所以這種方法得到的結果其實並不具有說服性。
2、Double Cross Validation(2-fold Cross Validation,記為2-CV)
做法是將資料集分成兩個相等大小的子集,進行兩回合的分類器訓練。在第一回閤中,一個子集作為training set,另一個便作為testing set;在第二回閤中,則將training set與testing set對換後,再次訓練分類器,而其中我們比較關心的是兩次testing sets的辨識率。不過在實務上2-CV並不常用,主要原因是training set樣本數太少,通常不足以代表母體樣本的分佈,導致testing階段辨識率容易出現明顯落差。此外,2-CV中分子集的變異度大,往往無法達到“實驗過程必須可以被複制”的要求。
3、K-fold Cross Validation(K-折交叉驗證,記為K-CV)
將原始資料分成K組(一般是均分),將每個子集資料分別做一次驗證集,其餘的K-1組子集資料作為訓練集,這樣會得到K個模型,用這K個模型最終的驗證集的分類準確率的平均數作為此K-CV下分類器的效能指標。K一般大於等於2,實際操作時一般從3開始取,只有在原始資料集合資料量小的時候才會嘗試取2。K-CV可以有效的避免過學習以及欠學習狀態的發生,最後得到的結果也比較具有說服性。
4、Leave-One-Out Cross Validation(記為LOO-CV)
如果設原始資料有N個樣本,那麼LOO-CV就是N-CV,即每個樣本單獨作為驗證集,其餘的N-1個樣本作為訓練集,所以LOO-CV會得到N個模型,用這N個模型最終的驗證集的分類準確率的平均數作為此下LOO-CV分類器的效能指標。相比於前面的K-CV,LOO-CV有兩個明顯的優點:(1)每一回閤中幾乎所有的樣本皆用於訓練模型,因此最接近原始樣本的分佈,這樣評估所得的結果比較可靠。(2)實驗過程中沒有隨機因素會影響實驗資料,確保實驗過程是可以被複制的。
但LOO-CV的缺點則是計算成本高,因為需要建立的模型數量與原始資料樣本數量相同,當原始資料樣本數量相當多時,LOO-CV在實作上便有困難幾乎就是不顯示,除非每次訓練分類器得到模型的速度很快,或是可以用並行化計算減少計算所需的時間。
交叉驗證(Cross Validation)是用來驗證分類器的效能一種統計分析方法,基本思想是把在某種意義下將原始資料(dataset)進行分組,一部分做為訓練集(training set),另一部分做為驗證集(validation set),首先用訓練集對分類器進行訓練,在利用驗證集來測試訓練得到的模型(model),以此來做為評價分類器的效能指標。常見的交叉驗證方法如下:1、Hold-Out Method
將原始資料隨機分為兩組,一組做為訓練集,一組做為驗證集,利用訓練集訓練分類器,然後利用驗證集驗證模型,記錄最後的分類準確率為此分類器的效能指標。此種方法的好處的處理簡單,只需隨機把原始資料分為兩組即可,其實嚴格意義來說Hold-Out Method並不能算是CV,因為這種方法沒有達到交叉的思想,由於是隨機的將原始資料分組,所以最後驗證集分類準確率的高低與原始資料的分組有很大的關係,所以這種方法得到的結果其實並不具有說服性。
2、Double Cross Validation(2-fold Cross Validation,記為2-CV)
做法是將資料集分成兩個相等大小的子集,進行兩回合的分類器訓練。在第一回閤中,一個子集作為training set,另一個便作為testing set;在第二回閤中,則將training set與testing set對換後,再次訓練分類器,而其中我們比較關心的是兩次testing sets的辨識率。不過在實務上2-CV並不常用,主要原因是training set樣本數太少,通常不足以代表母體樣本的分佈,導致testing階段辨識率容易出現明顯落差。此外,2-CV中分子集的變異度大,往往無法達到“實驗過程必須可以被複制”的要求。
3、K-fold Cross Validation(K-折交叉驗證,記為K-CV)
將原始資料分成K組(一般是均分),將每個子集資料分別做一次驗證集,其餘的K-1組子集資料作為訓練集,這樣會得到K個模型,用這K個模型最終的驗證集的分類準確率的平均數作為此K-CV下分類器的效能指標。K一般大於等於2,實際操作時一般從3開始取,只有在原始資料集合資料量小的時候才會嘗試取2。K-CV可以有效的避免過學習以及欠學習狀態的發生,最後得到的結果也比較具有說服性。
4、Leave-One-Out Cross Validation(記為LOO-CV)
如果設原始資料有N個樣本,那麼LOO-CV就是N-CV,即每個樣本單獨作為驗證集,其餘的N-1個樣本作為訓練集,所以LOO-CV會得到N個模型,用這N個模型最終的驗證集的分類準確率的平均數作為此下LOO-CV分類器的效能指標。相比於前面的K-CV,LOO-CV有兩個明顯的優點:(1)每一回閤中幾乎所有的樣本皆用於訓練模型,因此最接近原始樣本的分佈,這樣評估所得的結果比較可靠。(2)實驗過程中沒有隨機因素會影響實驗資料,確保實驗過程是可以被複制的。
但LOO-CV的缺點則是計算成本高,因為需要建立的模型數量與原始資料樣本數量相同,當原始資料樣本數量相當多時,LOO-CV在實作上便有困難幾乎就是不顯示,除非每次訓練分類器得到模型的速度很快,或是可以用並行化計算減少計算所需的時間。