模型選擇問題(Model Selection Problem)
我們在之前得知,通過最小化Ein來選擇最好的模型不是一個正確的辦法,因為這樣可能會付出模型復雜度的代價、造成泛化效果差、造成過擬合的發生。
為了解決這個問題,我們的想法是找一些測試數據來看看哪種模型對應測試數據的效果更好,但是用新的測試數據來作這個事情,實際上是做不到的自欺欺人的辦法。
我們對比這兩種方式,用訓練數據來作選擇的話,由于這些數據決定了最終的假設,所以再用這些訓練數據來作驗證的時候已經被“污染”了;而如果用新的數據對于測試驗證的來說,是“清潔”的。
折中的辦法是,將可用的數據留一小部分作為驗證數據,當做模型選擇的時候,再拿來用于驗證。

驗證
現在,我們從手中的數據拿出一小部分出來作驗證數據,我們拿它來模擬測試數據。為了將針對驗證數據的錯誤Eval和Eout聯系起來,我們希望數據獨立同分布于原始數據的分布;剩下的數據用作訓練數據,可以用來做模型選擇。

使用最佳的Eval做模型選擇
在做模型選擇時,我們遵循以下流程,首先將數據集D分成兩部分Dtrain和Dval,用Dtrain算出不同假設Hi的g-,再用Dval算出Ei,我們得到最小的Ei(記為Em)和其對應的假設Hm,再將所有的數據放在一起用Hm這個模型算出最終的模型參數gm(這個gm是用了最好的模型和最多的數據算出的結果,這會使得Eout最小)。

關系圖形
我們用一個圖形關系來表示不同的驗證數據對真實誤差Eout的影響。

上面這個圖的橫軸是驗證數據的大小是多少,縱軸表示Eout的大小。
其中紅色的線代表用驗證數據得到的最終假設g-,該假設不再用所有的數據重新做一次訓練。
藍色的線代表用驗證數據得到了g-之后,在拿訓練數據和驗證數據放在一起做一次訓練,得到的g。
顯而易見的是,藍色的線總是比紅色的線要低,并且藍色的線比黑色的橫線(表示直接用所有數據做訓練得到的Ein)要低(這表示用驗證數據得到的假設真的比不用驗證數據得到的假設的誤差要低)。
這說明,驗證這個步驟確實是一個有用的方法。
那么為什么紅色的線有時候比Ein得到的g的錯誤要大呢?
其解釋是,如果驗證數據變大,訓練數據變小時,g-是用比較少的數據求出來的,所以g-的表現是不好的。用很少的數據選取的最好的g-有可能比起用全部數據訓練得到的g還要差。
驗證數據的大小
我們的決策根植于一個假設,我們要得到最后的假設g,所以希望Eout(g)和用驗證數據得到Eout(g-)接近,另外還希望Eout(g-)和Eval(g-)接近。我們用Eval(g-)做選擇,最后希望得到Eout(g)最好的那個假設。

這兩個近似等式需要的驗證數據的數量是不同的,Eout(g-)≈Eval(g-)需要更多的驗證數據,但這樣會造成g-和g差很多(即上面的關系圖形中,紅色和藍色的線在驗證數據多的時候會差別很大);Eout(g)≈Eout(g-)需要數量少的驗證數據,但這是不太能確定Eval和Eout是不是接近的。
實際上,驗證數據量K=N/5,其中N是訓練數據。
留一交叉驗證
如果只有一個數據來作驗證的話,那么其錯誤Eval是:

如果將所有的數據都拿來作驗證的話,將其得到的結果平均起來,大概就能告訴我們Eout的情況:

理論保證
我們現在從偏理論的角度解釋留一交叉檢驗的誤差期望值和Eout(g-)的近似關系。
首先,我們假設對各式各樣不同的數據集來作交叉檢驗并取一個平均。這里表示的都是leave-one-out交叉檢驗誤差的期望值和Eout(g-)的期望值是差不多的。

實際應用
下圖的橫軸是特征轉換的維度,從圖中可以看出來,如果拿Ein來作選擇,用盡量多的特征可以做到盡可能小的Ein,但是造成的結果是過擬合,所以如果用較少的特征,Eout可能還小一點;如果用交叉檢驗的Ecv來作選擇,其曲線和Eout的曲線很接近,所以就想下面第二個圖中最右側的圖像表示的,雖然會有一些錯分類的情形,但是分類的曲線平滑很多,其在實際的表現就會更好。
這說明使用交叉驗證的方法求得的假設可以比Ein得到的效果更好。


可能的問題
如果有1000個數據,我們用leave-one-out來作交叉驗證的話,就需要做1000次來得到平均的誤差,這樣比較耗時,不太實際。
V折交叉檢驗
在留一交叉檢驗中,我們取一份數據來作驗證,其余數據來作訓練,
為了簡單起見,我們可以將數據切成10部分,然后拿其中9份做訓練,另外1份做驗證,這樣和留意交叉檢驗的效果是類似的。

常見的方式是將數據分成10份。
這種V折的交叉驗證的方式比單一驗證的方式更加穩定。
轉載請注明作者Jason Ding及其出處
Github博客主頁(http://jasonding1354.github.io/)
CSDN博客(http://blog.csdn.net/jasonding1354)
簡書主頁(http://www.lxweimin.com/users/2bd9b48f6ea8/latest_articles)