Statistic Learning 4

1. Resampling Methods

重採樣方法是現代統計學習中不可缺失的一環。它們包括:

  • 重複的從訓練集中採樣
  • 重複的擬合模型以獲得額外的信息

重採樣方法會耗費計算機資源,因爲需要從訓練集中採集不同的子集來多次擬合同一個模型。下面,我們將要討論兩個較爲常用的重採樣方法:

  • CrossValidationCross-Validation(交叉驗證)
  • BootStrapBootStrap

其中交叉驗證估計測試誤差以靈活的選擇模型;BootStrapBootStrap衡量了給定方法參數估計的準確性。

2. Cross Validation

Test Error Rate, Train Error Rate

  • Test Error Rate得到了一個方法預測新樣本的平均誤差;而Train Error Rate得到了一個方法在訓練過程中Response和Label的誤差。
  • 然而,Test Error Rate往往高於Train Error Rate

當缺少一個較大的測試集來估計Test Error Rate的時候,還有很多其他的替代方案如通過訓練集得到Test Error Rate。在交叉驗證中,訓練樣本中一個假冒的子集會扮演測試集。

The validation set approach

  • 假設我們要估計一個模型的Test Error Rate,Validation set approach是個非常簡單的策略。它將所有樣本隨機分成2份,一份作爲Training Set,另一份作爲Validation Set(Hold-out Set)。模型在Training Set上進行訓練,並通過Validation Set來驗證模型的能力。嘗試用MSEMSE來評價模型的驗證效果,它是一種對Test Error Rate的評估。
  • 現在使用Auto數據集來驗證Validation Set Approach方法
    • 在Auto dataset中,mpg和horsepower有着非線性的關係,所以在線性迴歸模型中加入horsepower2horsepower^2這一項,將會使得模型獲得更好的效果。那麼,我們很自然的想知道,三次擬合或者更高次的擬合會不會有更好的效果呢?在前文中,我們採用pvaluep-value來檢測這一點,但現在可以使用驗證方法如MSEMSE來回答這個問題。
    • 我們將392個樣本隨機分爲2份,即Training Set和Validation Set各196各樣本。我們使用Training Set擬合不同的迴歸模型(從1次到高次),並在Validation Set上使用MSEMSE作爲驗證誤差的度量,以評估各模型的性能。
    • 從實驗結果上,我們可以發現:二次擬合明顯優於線性擬合;然而三次和之後的高次擬合MSE不減反增,這證明了它們並沒有很好的提升模型的性能。當整個數據集被重複的隨機分成不同的Training Set和Validation Set,並訓練模型後,會發現各個MSE曲線各不相同,它們對於哪個模型能夠獲得最好的性能並沒有統一的意見。我們僅能得到的結論是:二次項的加入大大提升了模型的性能,表現在MSE普遍降低,故線性迴歸不適合該數據集。
  • Validation Set Approach很簡單但有兩個潛在的問題
    • 對所有數據集,不同的拆分發,訓練出來的模型在驗證集上MSEMSE各不相同,過於依賴特定的Training Set和Validation Set。
    • 在驗證方法中,只用訓練集中的樣本擬合模型,故當訓練樣本較小時,驗證集的Test Error Rate將被過高的估計。

3. Leave-One-Out Cross-Validation

  • 簡稱LOOCVLOOCV。假設有樣本{(x1,y1),(x2,y2)....(xn,yn)}\{(x_1, y_1), (x_2, y_2) .... (x_n, y_n)\}LOOCVLOOCV每次從樣本中挑選出一個樣本作爲Validation Set,剩下的(n1)(n-1)個樣本當作Training Set。模型將會用(n1)(n-1)個樣本來擬合模型,並用1個樣本計算MSEMSE值。

    MSE=(y1y1^)2MSE = (y_1 - \hat{y_1})^2

  • 根據上述選擇Test Set的方法,可將過程重複nn次得到nnMSEMSE的值。LOOCVLOOCV估計Test MSE的方法爲,求nn個Test Error估計的均值:

    CV(n)=1ni=1nMSEiCV(n) = \frac{1}{n}\sum_{i=1}^nMSE_i

  • LOOCVLOOCV相對於Validation Set Approach方法有以下兩個優點

    • 偏差低(far less bias)。bias高會導致過高估計Test Error Rate,因爲浮動性太大,而造成這個問題的主要原因是訓練樣本不充足。而LOOCVLOOCV每次都選取n1n-1個樣本,相對於Validation Set Approach的n2\frac{n}{2},Training Set大得多。故偏差高的問題得到緩解。
    • Validation Set Approach中的Training Set中的樣本隨機性太強,導致各個MSE曲線各不相同,無法得出有用的結論。而LOOCVLOOCV總會得出相似的MSE曲線,故在拆分訓練集/測試集時沒有隨機性。
  • 然而,使用LOOCVLOOCV對算力要求較高,因爲要測試nn次模型。當nn過大時,會耗費大量的時間擬合最小二乘線性或者多項式迴歸中,但是可通過一個捷徑減小LOOCVLOOCV的開銷至訓練一個模型相當。公式如下:

    CV(n)=1ni=1n(yiyi^1hi)2CV(n) = \frac{1}{n}\sum_{i=1}^n(\frac{y_i-\hat{y_i}}{1-h_i})^2

    • 其中,yi^\hat{y_i}未原始最小二乘的第ii個擬合值;hih_i是高槓杆點。這個值和原始的MSEMSE相似,但第ii個殘差除以了(1hi)(1-h_i)leverageleverage值位於(1n,1)(\frac{1}{n}, 1)之間,反應了一個樣本對於擬合自身的影響。因此,高槓杆點的殘差被正確的計算,從而使得等式成立。
    • 也就是說,影響Test Error Rate往往是異常點:離羣點、高槓杆點。其中,高槓杆點的影響尤爲明顯,擬合nn次模型就是爲了消除這些異常點的影響。而通過上述捷徑公式可直接消除異常點的影響,無需進行多次的擬合,但該方法並不一直使用。

4. K-Fold Cross-Validation

  • LOOCVLOOCV的一個替代品就是K-Fold CV,其步驟如下

    • 首先將訓練集分成等大小的kk

    • 每次選擇其中一組作爲驗證集,模型擬合剩餘的(k1)(k-1)組,MSE計算均方差。

    • 重複kk次後,K-Fold CV可用於計算下式的估計

      CV(k)=1kikMSEiCV(k) = \frac{1}{k}\sum_i^kMSE_i

    不難發現,當k=nk=n時,LOOCVLOOCV是K-Fold CV的一個特殊形式。

  • 在實踐中,往往設置k=5k=5或者k=10k=10,那麼K-Fold相對於LOOCVLOOCV的優勢在哪裏呢?

    • 首先肯定是降低了計算量。LOOCVLOOCV需要擬合nn次模型,當nn很大的時候,這幾乎是場災難。
    • BiasVarianceTradeOffBias-Variance-Trade-Off。通過將訓練集隨機分成10個,並使用9個進行訓練得到的Error Curve(誤差曲線)的變化明顯沒有Validation Set Approach強烈。
  • 我們再詳細的看一下BiasVarianceTradeOffBias-Variance-Trade-Off

    • k<nk<n時,K-Fold CV相對於LOOCVLOOCV有着計算上的優勢。我們將該優勢放在一邊,可以發現K-Fold CV一個不太明顯但卻更加重要的優點是:它相較於LOOCVLOOCV對於Test Error Rate的估計會更加的精確,這和BiasVarianceTradeOffBias-Variance-Trade-Off相關。
    • 在上文中,我們提到Validation Set Approach會對Test Error Rate估計過高,因爲這個方法中的訓練集僅爲數據集的一半。在這個邏輯下,不難看出LOOCVLOOCV給出的測試誤差近似無偏估計(因爲每個訓練集包含(n1)(n-1)個樣本,接近整體了,求的就是每個整體數據集訓練出來的模型的MSE的均值)。
    • 而K-Fold CV,當k=5k=5k=10k=10的時候,將會找到偏差較爲中間的部分,因爲每個訓練集包含n(k1)k\frac{n(k-1)}{k}個樣本,比LOOCVLOOCV的方法少得多,但比Validation Approach多得多。所以,從減少偏差的角度,LOOCVLOOCV優於K-Fold CV。
    • 但在估計的過程中,偏差(Bias)並不是唯一需要關心的,我們必須要同時考慮VarianceVariance。事實證明,當k<nk<n時,LOOCVLOOCVVarianceVariance明顯高於K-Fold CV。爲什麼?當我們進行LOOCVLOOCV的時候,我們實際上室對nn個擬合模型的輸出進行平均,每個模型幾乎都在相同的訓練集上進行訓練,因爲這些輸出高度相關。相比之下,K-Fold CV的輸出相關性較小,因爲每個模型的訓練集的重疊度較小。
    • 因爲許多高度相關量的均值比低相關量的均值,有更高的方差;因此,LOOCVLOOCV產生的測試誤差估計往往比K-Fold CV有更高的方差。

本文爲作者原創,轉載需註明出處!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章