问题1 机器学习篇 如何解决过拟合(overfiting)?
向自己提問題是一個很好的學習方式。
問題: 如何解決過擬合(overfiting)?
在解決這個問題之前先明確問題是什么.這涉及到另外一些問題,什么是過擬合?過擬合與什么因素有關?等等
答:
1)直觀理解過擬合
先說說經驗誤差,學習器在訓練集上的預測值和真實值之間的差異稱為經驗誤差。我們希望經驗誤差越小越好,但是當經驗誤差太小,以至于精確度約為100%時,我們就懷疑這個模型出現了過擬合。
所謂的過擬合就是學習器從數據中學得太多,已經把訓練樣本的某一些特點當作是所有潛在樣本都會具有的一般性質。
2)從數學上理解過擬合
在監督學習中,我們所說的模型實際上是一個決策函數,對于給定的輸入X,函數給出預測值f(X),f(X)f(X)與真實值可能一致也可能不一致,通常使用損失函數(loss function)或者代價函數(cost function)來 衡量預測錯誤的程度,記為L(Y,f(X))L(Y,f(X))。常用的的損失函數有一下幾種:
如果我們把輸入和輸出都看做隨機變量,那么這兩個隨機變量會有聯合分布P(X,Y), 考慮其損失函數的期望, 即平均意義下的損失,也稱為風險函數或者期望損失:
實際中我們并不能得到期望損失,因為我們不知道聯合分布。
我們總是訓練模型,用模型的經驗損失去近似期望損失。經驗損失是模型上訓練集的平均損失,表示為
只有在數據量大的時候,使用模型的經驗損失去近似期望損失才會比較理想,當數據量小的時候,這個近似并不理想。
解決辦法是經驗風險最小化和結構風險最小化策略。
經驗風險最小化可以使用下式表示:
極大似然估計是經驗風險最小的一個例子。
使用經驗風險最小策略的問題: 當樣本不足或者很小時,經驗風險最小化學習的效果不一定好,會產生過擬合。
這里從另外一個角度理解什么是過擬合。
3) 解決方法:
防止過擬合的方法就是使結構風險最小化,等價于正則化。
結構風險是在經驗風險上加上表示模型復雜度的正則化或者罰項,如下式:
模型越復雜,復雜度J(f)J(f)越大,反之越小。復雜度表示對模型的懲罰。
λ≥0λ≥0用于衡量經驗風險和模型復雜度。
這個策略認為結構風險最小的模型是最優模型,從而把監督學習問題變成了經驗風險函數或者結構風險函數的最優化問題。
4)一個多項式擬合問題
使用M次多項式對10個數據點進行擬合:
我們會發現當M=9時,沒有任何誤差,已經過擬合。
5) one more thing
李航的書中還提到模型復雜度和預測誤差的關系,這也涉及到泛化能力的問題。
更進一步,什么是欠擬合?如何解決欠擬合?
參考:
周志華《機器學習》
李航《統計學習方法》
轉載于:https://www.cnblogs.com/siucaan/p/9623174.html
總結
以上是生活随笔為你收集整理的问题1 机器学习篇 如何解决过拟合(overfiting)?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ROStopic 通信方式
- 下一篇: 题目:两个排序数组的中位数(C++)