[林軒田]15-驗證法

模型選擇

模型選擇的因素

演算法選方面選擇:PLA, pocket, linear regression, logistic regression
iteration的次數:100,1000
每步大小: 1,0.01
特徵transform: linear線性的、quadratic二次的,poly-10 10次多項式,legendre-poly-10 10次垂直多項式。
regulation選什麼: L2 regularizeer L2範數,L1範數,對稱範數。。。
規範化的權重λ 0,0.01,1

驗證資料的選擇 validation set Dval

Ein與Eval

如果用訓練樣本做驗證,其實是被污染了的資料,因爲你在訓練模型的時候已經使用了這些資料
如果使用測試樣本做驗證,那就不好了,因爲這些測試樣本給你的話,以後判定的指標就不準了呀。

所以可以在訓練之前拿出一部分樣本做測試。這些樣本不參與訓練;

Paste_Image.png

數據分塊的辦法

所以我們現在把數據分成了兩部分,k的那部分用來做驗證,也就是計算Eval,N-k那部分用來訓練模型。而在我們選擇模型的時候,就不需要計算Ein了,而是計算Eval,以此來估計當前模型的Eout。
Paste_Image.png

我們的finite hoffding不等式來計算Eout

Paste_Image.png

選出合適的Gm之後還要用所有的資料重新來一次訓練。
Paste_Image.png

k的選擇

有當test_data很小,train_data接近D時,才差不多。
一般情況下,我們的test_data選取總數據的20%.即N/5 .

Paste_Image.png

留1法做交叉驗證

留一法

留一個作爲test_data,其餘都作爲train_data.循環N次,再把N個error取平均.
Paste_Image.png

Paste_Image.png

cross validation: 交叉驗證指的是同一筆資料有時候當驗證有時候當訓練樣本,最後取平均。

該方法理論上很好,但是實際上,並不常用.一般再數據量很小的時候用.

缺點有:
1.可能計算量很大
2.穩定性不是很好,因爲每次僅僅留一個點作爲test_data

k-fold 交叉驗證

一般K取10. 也有取5的.k越大,越精確.但是運算量大.

總結

  1. 交叉驗證其實對結果還是有一些樂觀成分.
  2. 只要計算量允許,就用10折交叉驗證,10折效果一般比5摺好.
  3. cross validation 比single validation(普通驗證法) 好,只要計算量允許,一定要用cross validation

其他資料

[驗證法:如何選擇模型,參數等 - 丁磊_ml的博客 - 博客頻道 - CSDN.NET]
(http://blog.csdn.net/mosbest/article/details/52191916)

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