機器學習中的偏差(bias)和方差(variance)


轉發:http://blog.csdn.net/mingtian715/article/details/53789487請移步原文

內容參見stanford課程《機器學習》

 
對於已建立的某一機器學習模型來說,不論是對訓練數據欠擬合或是過擬合都不是我們想要的,因此應該有一種合理的診斷方法。
 
偏差和方差
評價數據擬合程度好壞,通常用代價函數J(平方差函數)。如果只關注Jtrain(訓練集誤差)的話,通常會導致過擬合,因此還需要關注Jcv(交叉驗證集誤差)。
 
高偏差:Jtrain和Jcv都很大,並且Jtrain≈Jcv。對應欠擬合。
高方差:Jtrain較小,Jcv遠大於Jtrain。對應過擬合。
下圖d代表多項式擬合的階數,d越高,擬合函數越復雜,越可能發生過擬合。
 
 
如何理解高偏差和高方差
1、高偏差對應着欠擬合,此時Jtrain也較大,可以理解為對任何新數據(不論其是否屬於訓練集),都有着較大的Jcv誤差,偏離真實預測較大。
2、高方差對應着過擬合,此時Jtrain很小,對於新數據來說,如果其屬性與訓練集類似,它的Jcv就會小些,如果屬性與訓練集不同,Jcv就會很大,因此有一個比較大的波動,因此說是高方差。
 
實際優化過程中,更多的是調整防止過擬合參數λ,λ對應正則化系數(越大,對過擬合的限制越強)。下圖為λ和Jtrain、Jcv理想曲線。
 
 
學習曲線
學習曲線是描述Jtrain和Jcv和數據樣本規模的關系曲線。參見下圖
 
                                      
左圖對應高偏差(欠擬合),右圖對應過擬合。可以看出當模型屬於高偏差時,隨着樣本數據規模增大,性能不會有什么改善,過擬合中的誤差則在持續減小。 這個很好理解,欠擬合一般是模型比較簡單,不能准確的描述數據特征,因此盲目增大數據量是沒用的;而過擬合是模型比較復雜,描述數據過於准確了,因此增加一些數據量可以減小過擬合。
 
 
模型修改策略
過擬合:增大數據規模、減小數據特征數(維數)、增大正則化系數λ
欠擬合:增多數據特征數、添加高次多項式特征、減小正則化系數λ
 
實際優化過程中,我們的目標就是使模型處於欠擬合和過擬合之間一個平衡的位置。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM