機器學習

在模型評估與優化過程中,我們經常會遇到過擬合和欠擬合的情況,那麼到底什麼是過擬合和欠擬合。

過擬合是指模型對於訓練集數據呈現過當的情況,從評估指標上看就是模型在訓練集上表現的很好,但是在測試集合新的數據上就表現得很差。

欠擬合是指在訓練集上和測試集上表現得都不好的情況。

左圖就是欠擬合的情況,虛線沒有很好的區分數據類別,不能夠很好的擬合數據,右圖的模型過於複雜,把噪聲數據的特徵也學習到模型中,導致模型泛化能力下降,在後期應用過程中很容易輸出錯誤的預測結果。

想要降低過擬合的風險,該怎麼辦?

1 從數據入手,獲得更多的訓練數據。使用更多的訓練數據是解決過擬合問題最有效的方法,更多的數據能讓模型學習到更多有效的特徵,減少噪聲的影響。在實際的工作中,直接增加訓練數據有一定困難,但是可以通過一定的規則來擴充。比如,在圖像分類問題上,通過圖像的平移、旋轉、縮放等方式擴充數據,更復雜的方法,還可以使用生成對抗網絡來合成大量的新的訓練數據。

2 降低模型的複雜度。在數據較少的時候,模型過於複雜是產生過擬合的主要原因,適當的降低模型複雜度可以避免模型擬合過多的噪聲數據。例如,在決策樹模型中,適當的剪枝或者降低樹的深度;在神經網絡模型中減少網絡層數、神經元個數等。

3 正則化方法。給模型的參數加上一定的正則約束,比如將權值的大小加入到損失函數中。

4 集成學習方法。集成學習是把多個模型集成在一起,來降低單一模型的過擬合風險,比如Bagging方法。

想要降低欠擬合的方向,該怎麼辦?

1 擴展新的特徵。當特徵不足或者現有的特徵數據跟樣本標籤的相關性不強時,很容易處罰欠擬合現象。通過挖掘上下文特徵,組合特徵等行的特徵,一般都會得到不錯的效果。在深度學習潮流中,有很多模型可以幫助完成特徵工程,比如因子分解機、梯度提升決策樹、Deep-crossing等都可以成爲擴展特徵的方法。

2 增加模型的負責度。簡單模型的學習能力較差,通過增加模型的負責度可以使模型擁有更強的擬合能力。例如,在線性模型中添加高次項,在神經網絡模型中增加網絡層數或者神經元個數等。

3 減小正則化係數。正則化是用來防止過擬合的,當模型出現欠擬合的時候,需要根據實際情況減小正則化係數。

查看原文 >>
相關文章