偏差與方差, 過擬合與欠擬合、學習曲線之間的聯繫

機器學習中,偏差與方差, 過擬合與欠擬合、學習曲線之間的聯繫

  • 1 學習曲線?
  • 2 偏差與方差?
  • 3 過擬合與欠擬合的解決辦法?

1 學習曲線?

學習曲線就是通過畫出不同訓練集大小時訓練集和交叉驗證的準確率,可以看到模型在新數據上的表現,進而來判斷模型是否方差偏高或偏差過高,以及增大訓練集是否可以減小過擬合。如何判別一個模型是過擬合還是欠擬合,是偏差問題還是方差問題?可以通過學習曲線來判斷。

從總體趨勢上來看,訓練集的準確率是逐漸減低的,測試集的準確率逐漸上升。

高偏差:訓練集和測試集的準確率都比較小,但是兩者趨於一致,這種情況是欠擬合狀態。解決辦法:增加模型參數,比如,構建更多的特徵,減小正則項。此時通過增加數據量是不起作用的。

高方差:訓練集和測試集的準確率相差較大,但是都在期望的準確率附件,這種情況是過擬合狀態。可以增大訓練集,降低模型複雜度,增大正則項,或者通過特徵選擇減少特徵數。

2 偏差與方差

偏差:描述的是預測值(估計值)的期望與真實值之間的差距。偏差越大,越偏離真實數據集。
方差:描述的是預測值的變化範圍,離散程度,也就是離其期望值的距離。方差越大,預測結果數據的分佈越散。

基於偏差的誤差:所謂基於偏差的誤差是我們模型預期的預測與我們將要預測的真實值之間的差值。偏差是用來衡量我們的模型的預測同真實值的差異。

基於方差的誤差:基於方差的誤差描述了一個模型對給定的數據進行預測的可變性。比如,當你多次重複構建完整模型的進程時,方差是,在預測模型的不同關係間變化的多少。

之前理解機器學習中的偏差的概念,即預測值與真實值之前的差異大小。對於方差不理解,不知如何衡量,其實,很簡單,將一份數據多次切分,進行預測,每次得出的誤差都不相同,它們之間的離散程度即是基於方差的誤差。一般來講,不同的訓練集、測試集分割的方法導致其準確率不同,而交叉驗證的基本思想是:將數據集進行一系列分割,生成一組不同的訓練測試集,然後分別訓練模型並計算測試準確率,最後對結果進行平均處理。這樣來有效減小基於方差的誤差。

一般來講:越複雜的模型偏差越小,而方差越大。
我們用一個參數少的,簡單的模型進行預測,會得到低方差,高偏差,通常會出現欠擬合。
而我們用一個參數多的,複雜的模型進行預測,會得到高方差,低偏差,通常出現過擬合。
因此需要在模型複雜度之間尋找一個適當值

3 過擬合與欠擬合的解決辦法?

上面解釋學習曲線的時候也提到了一些。
過擬合:1 降低模型的複雜度 2 減少特徵數 3 增大正則項 4 增加數據(學到更多有效特徵)5 bagging 如RF隨機選擇特徵 5 重新清洗數據,可能因爲噪聲太大導致。
欠擬合:1 增大模型的複雜度,2 增加特徵數(特徵生成)3 減少正則項

參考:
[模型優化]模型欠擬合及過擬合判斷、優化方法
什麼是高/低方差、高/低偏差、(推薦閱讀)
用學習曲線 learning curve 來判別過擬合問題

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