資源描述:
《交叉驗證(分類器性能)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、交叉驗證(CrossValidation)方法思想簡介以下簡稱交叉驗證(CrossValidation)為CV.CV是用來驗證分類器的性能一種統(tǒng)計分析方法,基本思想是把在某種意義下將原始數(shù)據(jù)(dataset)進行分組,一部分做為訓(xùn)練集(trainset),另一部分做為驗證集(validationset),首先用訓(xùn)練集對分類器進行訓(xùn)練,再利用驗證集來測試訓(xùn)練得到的模型(model),以此來做為評價分類器的性能指標(biāo).常見CV的方法如下:1).Hold-OutMethod將原始數(shù)據(jù)隨機分為兩組,一組做為訓(xùn)練集,一組做為驗證集
2、,利用訓(xùn)練集訓(xùn)練分類器,然后利用驗證集驗證模型,記錄最后的分類準(zhǔn)確率為此Hold-OutMethod下分類器的性能指標(biāo).此種方法的好處的處理簡單,只需隨機把原始數(shù)據(jù)分為兩組即可,其實嚴(yán)格意義來說Hold-OutMethod并不能算是CV,因為這種方法沒有達到交叉的思想,由于是隨機的將原始數(shù)據(jù)分組,所以最后驗證集分類準(zhǔn)確率的高低與原始數(shù)據(jù)的分組有很大的關(guān)系,所以這種方法得到的結(jié)果其實并不具有說服性.2).K-foldCrossValidation(記為K-CV)將原始數(shù)據(jù)分成K組(一般是均分),將每個子集數(shù)據(jù)分別做一次驗
3、證集,其余的K-1組子集數(shù)據(jù)作為訓(xùn)練集,這樣會得到K個模型,用這K個模型最終的驗證集的分類準(zhǔn)確率的平均數(shù)作為此K-CV下分類器的性能指標(biāo).K一般大于等于2,實際操作時一般從3開始取,只有在原始數(shù)據(jù)集合數(shù)據(jù)量小的時候才會嘗試取2.K-CV可以有效的避免過學(xué)習(xí)以及欠學(xué)習(xí)狀態(tài)的發(fā)生,最后得到的結(jié)果也比較具有說服性.3).Leave-One-OutCrossValidation(記為LOO-CV)如果設(shè)原始數(shù)據(jù)有N個樣本,那么LOO-CV就是N-CV,即每個樣本單獨作為驗證集,其余的N-1個樣本作為訓(xùn)練集,所以LOO-CV會得
4、到N個模型,用這N個模型最終的驗證集的分類準(zhǔn)確率的平均數(shù)作為此下LOO-CV分類器的性能指標(biāo).相比于前面的K-CV,LOO-CV有兩個明顯的優(yōu)點:①a.每一回合中幾乎所有的樣本皆用于訓(xùn)練模型,因此最接近原始樣本的分布,這樣評估所得的結(jié)果比較可靠。②b.實驗過程中沒有隨機因素會影響實驗數(shù)據(jù),確保實驗過程是可以被復(fù)制的。但LOO-CV的缺點則是計算成本高,因為需要建立的模型數(shù)量與原始數(shù)據(jù)樣本數(shù)量相同,當(dāng)原始數(shù)據(jù)樣本數(shù)量相當(dāng)多時,LOO-CV在實作上便有困難幾乎就是不顯示,除非每次訓(xùn)練分類器得到模型的速度很快,或是可以用并行
5、化計算減少計算所需的時間.使用Cross-Validation時常犯的錯誤由于實驗室許多研究都有用到evolutionaryalgorithms(EA)與classifiers,所使用的fitnessfunction中通常都有用到classifier的辨識率,然而把cross-validation用錯的案例還不少。前面說過,只有trainingdata才可以用于model的建構(gòu),所以只有trainingdata的辨識率才可以用在fitnessfunction中。而EA是訓(xùn)練過程用來調(diào)整model最佳參數(shù)的方法,所以只有
6、在EA結(jié)束演化后,model參數(shù)已經(jīng)固定了,這時候才可以使用testdata。那EA跟cross-validation要如何搭配呢?Cross-validation的本質(zhì)是用來估測(estimate)某個classificationmethod對一組dataset的generalizationerror,不是用來設(shè)計classifier的方法,所以cross-validation不能用在EA的fitnessfunction中,因為與fitnessfunction有關(guān)的樣本都屬于trainingset,那試問哪些樣本才是
7、testset呢?如果某個fitnessfunction中用了cross-validation的training或test辨識率,那么這樣的實驗方法已經(jīng)不能稱為cross-validation了。EA與k-CV正確的搭配方法,是將dataset分成k等份的subsets后,每次取1份subset作為testset,其余k-1份作為trainingset,并且將該組trainingset套用到EA的fitnessfunction計算中(至于該trainingset如何進一步利用則沒有限制)。因此,正確的k-CV會進行共k
8、次的EA演化,建立k個classifiers。而k-CV的test辨識率,則是k組testsets對應(yīng)到EA訓(xùn)練所得的k個classifiers辨識率之平均值。交叉驗證概念 交叉驗證(Cross-validation)主要用于建模應(yīng)用中,例如PCR、PLS回歸建模中。在給定的建模樣本中,拿出大部分樣本進行建模型,留小部分樣本用剛