機器學習中過擬合、欠擬合問題

機器學習中過擬合、欠擬合問題

無論在機器學習還是深度學習建模當中都可能會遇到兩種最常見結果,一種叫過擬合(over-fitting )另外一種叫欠擬合(under-fitting)。

什麼是過擬合呢?什麼又是欠擬合呢?網上很直接的圖片理解如下:

機器學習中過擬合、欠擬合問題

過擬合問題:

當某個模型過度的學習訓練數據中的細節和噪音,以至於模型在新的數據上表現很差,我們稱過擬合發生了,通俗點就是:模型在訓練集中測試的準確度遠遠高於在測試集中的準確度,解決方法一般如下:

1.數據檢測:首先我們應該重新梳理一下收集的數據,是否樣本數量過少,樣本信息是否不夠全面,某一類特質的樣本數量過多,如在訓練樣本中帶鋸齒的葉子佔了絕大部分,那麼學習的算法就容易帶來過擬合的問題。

2.增加數據集:機器學習中一直有一句話"有時候擁有更多的數據勝過一個好的模型"。在增加數據的方法上有一些方法,例如在數據上增加一些隨機噪聲,從源頭上採集更過數據,重採樣等多種方式。

也可以使用重採樣來評價模型效能,保留一個驗證數據集最流行的重採樣技術是k折交叉驗證。指的是在訓練數據的子集上訓練和測試模型k次,同時建立對於機器學習模型在未知數據上表現的評估。

驗證集只是訓練數據的子集,你把它保留到你進行機器學習算法的最後才使用。在訓練數據上選擇和調諧機器學習算法之後,我們在驗證集上在對於模型進行評估,以便得到一些關於模型在未知數據上的表現的認知。

3.正則化方法:這是從技術成面上來通過控制訓練模型的複雜度來保證模型不易過擬合(一般情況下,越複雜的模型越容易產生過擬合的問題)。

欠擬合問題

通俗點說:在訓練數據和未知數據上表現都很差

以上都是描述如何避免過擬合的方法,在實際的模型訓練中有時候還會出現欠擬合的情況。對於欠擬合的情況,也有一些方法可以用來規避。

1.減少正則化:參看上面正則化部分的介紹,正則化可以避免過擬合的發生,因此在出現過擬合的情況時,可以通過減少正則化的損失函數來防止過擬合的發生。

2.添加數據量和特徵維度:由於模型可用於學習的數據規模可能不足夠大,導致模型訓練的不夠充分,模型複雜度不夠。還有如果統計的數據信息中,各個維度數量收集的不夠或者維度信息中大部分不具有區分樣本的特質。面對這種問題主要方法是收集更多的特質維度,或者增加採樣信息等方式來擴充數據。

3.增加算法模型的複雜度:例如很多訓練樣本不是線性可分的,如果單用線性方法來擬合可能無法達到一個理想的擬合方法,這時候引入非線性方法,如核函數等方法或者更復雜的深度學習等方法來增加模型的複雜度


分享到:


相關文章: