機器學習基礎概念——過擬合和欠擬合
文章轉載自:欠擬合、過擬合、偏差、方差
1. 基本概念
- 偏差:偏差度量了學習算法的期望預測與真實結果的偏離程度,即刻畫了算法本身的擬合能力。
- 方差:方差度量了訓練集的變動所導致的學習性能的變化,即刻畫了數據擾動所造成的影響。
- 欠擬合:模型太簡單,經驗誤差大,在訓練的過程中基本沒學到有價值的內容。
- 過擬合:模型學習了太多的訓練樣本的“個性”,經驗誤差小,但是對於未知的樣本泛化能力差(泛化誤差大)。
- 經驗誤差:模型關於訓練樣本集的平均誤差(也稱經驗風險)。
- 結構風險:結構風險在經驗風險的基礎上加上表示模型複雜度的正則化項。
- 泛化誤差:模型在新樣本集(測試集)上的平均誤差。
泛化誤差 = 偏差 + 方差 + 噪聲 - 噪聲:描述了在當前任務上任何學習算法所能達到的期望泛化誤差的下界,即刻畫了學習問題本身的難度。
1.1 偏差和方差
返回頂部
如果模型是低偏差和低方差,那肯定是最好的一個選擇。
但是偏差和方差在一定程度上是矛盾的:
如果偏差降低,那方差可能會相應的升高;
如果方差降低,那偏差可能相應升高。
所以我們是儘量的尋求偏差和方差的一個平衡點。
下圖比較形象的表達偏差和方差的含義:
偏差太大,說明模型欠擬合;
方差太大,說明模型過擬合。
2. 欠擬合和過擬合
2.1 學習曲線
通過學習曲線來識別模型是否發生了欠擬合、過擬合:
橫軸爲訓練樣本數量,縱軸爲誤差
2.2 複雜程度曲線
橫軸爲模型複雜程度,縱軸爲誤差
上圖中:模型在點A處,在訓練集以及測試集上同時具有較高的誤差,此時模型的偏差較大,模型欠擬合;
模型在點C處,在訓練集上具有較低的誤差,在測試集上具有較高的誤差,此時模型的方差較大,模型過擬合;
模型複雜程度控制在點B處爲最優。
2.3 支持向量機的過擬合和欠擬合
返回頂部
支持向量機採用的正則化係數是常規正則化係數的導數,C越大,過擬合;C越小,欠擬合,更容易記憶。
2.4 KNN迴歸的過擬合和欠擬合
返回頂部
鄰居數(n-neighbors)越大,欠擬合(bias);越小,過擬合(vias)。
3. 如何解決欠擬合和過擬合
3.1 解決欠擬合
- 增加特徵項;
- 添加多項式特徵項;
- 減小正則化係數;
- 增加模型複雜度。
3.2 解決過擬合
過擬合問題是機器學習和深度學習裏面主要需解決的一個問題。解決過擬合的辦法主要有:
- 重新做特徵工程;
- 增加訓練樣本數量;
- 降低模型複雜程度;
- 增大正則項係數;
- 採用dropout方法【用於神經網絡】;
- early stoping,早停法【當模型在驗證集上的誤差比上一次訓練結果差的時候停止訓練】;
- 減少迭代次數;
- 增大學習率;
- 添加噪聲數據;
- 樹結構中,可以對樹進行剪枝。
以上只是舉一些例子,不同的問題還是需要根據不同的情況分析
歡迎關注,敬請點贊!
返回頂部