過擬合的原因以及如何解決

如何判斷過擬合?

簡單來說就是當模型在訓練集上的表現效果非常好,並且遠好於在測試集上的表現效果,那基本就是過擬合了。如果在訓練集上表現都不好,很可能是欠擬合,,,

過擬合的原因?

1. 數據特徵過多,而數據量不足。對於迴歸類的算法而言,特徵越多意味着參數數量越多,模型也就越複雜,而相比之下如果數據量不足會導致過擬合,也就是模型複雜度與數據量不匹配。

2. 訓練集和測試集的數據特徵、分佈不夠相似,這一點根本原因也是訓練集過小,在總體樣本中,訓練集和測試集只佔很小一部分,這就導致很難保證訓練集和測試集與總體的數據分佈相似,更難保證訓練集與測試集分佈相似,這樣會導致模型充分學習了訓練集的特徵而過擬合,這樣模型的泛化能力肯定是不夠的。

3.訓練過度。當模型對訓練集訓練過度,模型充分學習這個數據集上的所有數據特徵,這樣會對噪聲和離羣值異常值過分敏感,從而導致過擬合。

如何解決?

1. 針對第一點,可以刪去一些無用特徵,這樣可以減少模型的參數,降低模型複雜度。

2. 擴充數據集。比如某個訓練集的數據全部爲正數,而理論上數據集可以取到全體實數,並且正負分佈相同,那我們可以對數據集取負,對於計算機視覺常見的手段就是對訓練集的圖像旋轉,放縮,剪切等。

3. Early Stopping。針對第三點,當模型的準確度不發生變化的時候及時停止訓練,可以有效防止過度訓練。

4. 正則化。正則化相當於對模型的優化添加約束條件,可以看作是一個懲罰項,通過添加不同的正則項可以實現不同的效果。

5. dropout。dropout是一種在神經網絡中常用的手段來防止模型過擬合,就是以一定的概率屏蔽到一部分神經元使他們在訓練中跳過,從而降低模型複雜度。

 

如有錯誤聯繫更正。

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