1. 程式人生 > >過擬合的問題

過擬合的問題

csdn 修改 dom var n) ces 復雜 lar 錯誤

交叉驗證的方法在訓練過程中是否有用?

1、過擬合的表現?

1)訓練集誤差小,評估集誤差大;2)訓練集誤差還在減小,評估集誤差開始波動

2、過擬合的原因?

模型復雜,dvc高——對於決策樹,就是沒有剪枝,模型可以完美擬合數據;神經網絡,收斂於復雜決策面;

噪音,模型overtrain,模型擬合了噪音和沒有區分性的特征;

建模樣本抽取錯誤,包括有限的訓練數據、抽樣方法錯誤,沒有考慮業務場景等;

3、如何解決?

對應導致過擬合發生的幾種條件,我們可以想辦法來避免過擬合。

(1) 假設過於復雜(excessive dvc) => start from simple model

(2) 隨機噪音 => 數據清洗

(3) 數據規模太小 => 收集更多數據,或根據某種規律“偽造”更多數據

正規化(regularization) 也是限制模型復雜度的

4.1 數據清洗(data ckeaning/Pruning)
將錯誤的label 糾正或者刪除錯誤的數據。

4.2 Data Hinting: “偽造”更多數據, add "virtual examples"
例如,在數字識別的學習中,將已有的數字通過平移、旋轉等,變換出更多的數據。

參考:

http://blog.csdn.net/a819825294/article/details/51239686

http://blog.csdn.net/findsd1989/article/details/45894483

http://news.ifeng.com/a/20170522/51139366_0.shtml

判斷variance是否比較高,要看test error是否比traing error明顯高很多。

提升問題:

1、隨機森林是否過擬合?gbdt是否過擬合?SVM是否過擬合?

random forest 雖然我沒有在實際中運用過,並且Breiman確實說過它不會overfitting。但是他的意思是隨著tree數目的增多,testing error不會急劇的增大,會穩定在一個數值。但是我們通常討論的overfitting是說testing error比training error大很多,這個Random forest顯然是無法避免的,盡管RF會限制error的limit。<br>簡單說random forest會隨著tree的增多而減少variance,但是它不會去修改bias啊

Add:沒有任何的learning algorithm可以徹底避免overfitting的。這是由機器學習的本質決定的,不是在技術層面可以修復的。 機器學習的核心在於generalization,但是數據又不可避免的包含noise,所以generalization走到最後就會開始考慮是不是要把noise也generalize一下。對於一個算法,它是沒有辦法區分noise和‘good’ data的。因為這些通常是人也無法知道的,我們說一個toy dataset中某些data是noise,這是我們的prior,機器是沒有辦法知道的。

https://www.zhihu.com/question/23578594

2、bagging 、boosting和varince/bias的關系?

過擬合的問題