1. 基本概念
- 偏差:偏差度量了學習算法的期望預測與真實結果的偏離程度, 即刻畫了學習算法本身的擬合能力。
- 方差:方差度量了同樣大小的訓練集的變動所導致的學習性能的變化, 即刻畫了數據擾動所造成的影響。
- 欠擬合:模型的經驗誤差大,模型太簡單,在訓練的過程中基本沒學到有價值的內容,說明模型欠擬合。
- 過擬合:模型學習了太多的訓練樣本的“個性”(經驗誤差小),但是對於未知的樣本泛化能力差(泛化誤差大),說明過擬合。
- 經驗誤差:模型關於訓練樣本集的平均誤差(也稱經驗風險)。
- 結構風險:結構風險在經驗風險的基礎上加上表示模型復雜度的正則化項。
- 泛化誤差:模型在新樣本集(測試集)上的平均誤差。
- 泛化誤差=偏差+方差+噪聲
- 噪聲:描述了在當前任務上任何學習算法所能達到的期望泛化誤差的下界,即刻畫了學習問題本身的難度。
偏差和方差
如果模型是低偏差和低方差,那肯定是最好的一個選擇。但是偏差和方差在一定程度上是矛盾的。如果偏差降低,那方差可能會相應的升高,如果方差降低,那偏差可能相應升高。所以我們是盡量的尋求偏差和方差的一個平衡點。
下圖比較形象的表達偏差和方差的含義。
個人理解:偏差太大,說明模型欠擬合;方差太大,說明模型過擬合。
2. 欠擬合和過擬合
2.1 學習曲線
通過學習曲線來識別模型是否發生了欠擬合、過擬合
橫軸為訓練樣本數量,縱軸為誤差
2.2 復雜程曲線
橫軸為模型復雜程度,縱軸為誤差
上圖中:模型在點A處,在訓練集以及測試集上同時具有較高的誤差,此時模型的偏差較大,模型欠擬合;模型在點C處,在訓練集上具有較低的誤差,在測試集上具有較高的誤差,此時模型的方差較大,模型過擬合。模型復雜程度控制在點B處為最優。
3. 如何解決欠擬合和過擬合
3.1 解決欠擬合
- 增加特征項。
- 添加多項式特征項。
- 減小正則化系數。
- 增加模型復雜度。
3.2 解決過擬合
過擬合問題是機器學習和深度學習里面主要要解決的一個問題。解決過擬合的辦法主要有一下列出的。
- 重新做特征工程。
- 增加訓練樣本數量。
- 降低模型復雜程度。
- 增大正則項系數。
- 采用dropout方法。
- early stoping。
- 減少迭代次數。
- 增大學習率。
- 添加噪聲數據。
- 樹結構中,可以對樹進行剪枝。
以上只是舉一些例子,不同的問題還是需要根據不同的情況分析。