作者:我執
鏈接:https://zhuanlan.zhihu.com/p/271727854
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
鏈接:https://zhuanlan.zhihu.com/p/271727854
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
有哪些原因會導致過擬合?
數據層面
- 訓練集和測試集的數據分布不一致
- 訓練數據集太少,樣本單一,模型無法從中學到泛化的規則
- 訓練集中的噪音太多,導致模型過分記住了噪音特征
模型層面
- 模型過於復雜,換句話說就是模型把這些數據“死記硬背”了下來,而不是學到了泛化規則。
過擬合如何解決?
數據層面
- 增加數據的量,或者增加數據的多樣性,讓模型學到更有效的特征。
模型層面
- 降低模型的復雜度,把模型變得更簡單。如決策樹的剪枝算法、神經網絡中的L2/L1正則化等。
訓練層面
- 使用驗證集,當驗證集發生過擬合現象時及早停止模型。
- 在訓練過程中使用正則化技術,如神經網絡中的Dropout、L2、L1正則化等。
模型融合
- 把多個模型集成在一起,降低模型過擬合的風險,如Bagging方法。
有哪些原因會導致欠擬合?
欠擬合一般是模型表達能力不夠或者說數據有問題,導致無法從數據中學到有效的特征與規則。
數據層面
- 數據特征表達能力不強或者現有特征與標簽之間的相關性不強。
模型層面
- 假設的模型太簡單,導致無論怎么學習都無法學到有效的信息,即模型“先天不足”。
- 模型合適,但是沒有訓練好,即模型還沒有訓練到收斂的情況。
解決欠擬合的常見方法有哪些?
- 添加新的數據特征
- 增加模型復雜度,假設一個更復雜的空間
- 減小正則化系數
- 增加模型訓練時間,直到模型收斂為止