標籤:大資料 cross validation 大資料實驗
一:交叉驗證(crossvalidation)(附實驗的三種方法)方法簡介
(1) 定義:交叉驗證(Cross-validation)主要用於建模應用中,例如PCR(Principal Component Regression) 、PLS(Partial least squares regression)迴歸建模中。在給定的建模樣本中,拿出大部分樣本進行建模型,留小部分樣本用剛建立的模型進行預報,並求這小部分樣本的預報誤差,記錄它們的平方加和。這個過程一直進行,直到所有的樣本都被預報了一次而且僅被預報一次。把每個樣本的預報誤差平方加和,稱為PRESS(predicted Error Sum of Squares)。【來自wikipidia:https://zh.wikipedia.org/wiki/%E4%BA%A4%E5%8F%89%E9%A9%97%E8%AD%89#K-fold_cross-validation】
(2)分類:
交叉驗證一般分為三類:double-fold CV即經常所說的2折交叉;10-fold交叉和LOO(leaveone out)CV即留一法交叉。
2折:將未經處理資料集DataSet均分為兩份:一份作為訓練集,即trainingSet,一份作為測試集,即testingSet,然後用訓練集去做訓練,用測試集去驗證;之後再將訓練集作為測試集,測試集作為訓練集進行迭代一次,將兩次所得的誤差經行處理作為總體資料的預測誤差。(註:這裡強調一點,就是資料集一定要均分為兩份,理由是:作為訓練集,資料量一定要不小於測試集,所以在迭代的過程中,使得資料不出現錯誤情況,必須均分。)
K-折:(在這裡說下K-折)是在將資料集分成K個子集,K個子集中得一個作為測試集,而其餘的K-1個資料集作為訓練集,最後對K個資料子集的錯誤計算均值,K次迭代驗證是對監督學習演算法的結果進行評估的方法,資料集的劃分一般採用等均分或者隨機劃分。
LOO:這個方法是K折的一種特列,就是把資料分為N份,其實每一份都是一個樣本,這樣迭代N次,計算最後的誤差來作為預測誤差。
(3) 度量方法:在以上的交叉驗證的最後都提到了資料誤差,因為沒驗證一次都有一次資料誤差,經行K折驗證,進行迭代K次,這次誤差的處理也有不同的方法,也就是度量方法,比如你取平均值ME,或者方差等都是可以的,還有平均標準誤差等,都可以作為最後的驗證誤差。
(4) 下面是3-fold cross validation
二、實驗資料處理方法
(1) 驗證:是指把資料分為兩部分,一部分作為訓練集,即trainingSet,一部分為測試集,即testingSet,一般前者占資料的70%,後者占資料的30%,用訓練集來進行訓練,用測試集來進行檢驗,將最後的誤差作為總體預測誤差。
(註:在這裡大家要注意與2折交叉驗證的區別,主要在資料集的分和檢驗上)
(2)交叉驗證:在這裡就不敘述了,就是利用交叉驗證的結果即作為參數選擇的標準,同時也作為模型擇優的標準。
(3) 實驗三【來自機器學習導論】這裡首先將資料分為兩部分,一部分作為訓練集,一部分作為測試集,用訓練集做交叉驗證選擇最優參數,用測試集來選擇最優模型。當然最後的誤差也是有測試集來作為預測誤差。
以上是三種實驗處理的方法,糾正哪種方法好,都不能做什麼評論,只能說適合你的胃口,或者你專業的胃口,或者看客的胃口……
大資料處理之道(實驗方法<二>)