機器學習基礎概念——過擬合和欠擬合

歡迎關注,敬請點贊!

文章轉載自:欠擬合、過擬合、偏差、方差

1. 基本概念

  1. 偏差:偏差度量了學習算法的期望預測與真實結果的偏離程度,即刻畫了算法本身的擬合能力。hθ(xi)yih_\theta (x_i) - y_i
  2. 方差:方差度量了訓練集的變動所導致的學習性能的變化,即刻畫了數據擾動所造成的影響。1mi=1m(hθ(xi)yi)2\displaystyle \frac {1}{m} \sum^m_{i = 1} (h_\theta (x_i) - y_i)^2
  3. 欠擬合:模型太簡單,經驗誤差大,在訓練的過程中基本沒學到有價值的內容。
  4. 過擬合:模型學習了太多的訓練樣本的“個性”,經驗誤差小,但是對於未知的樣本泛化能力差(泛化誤差大)。
  5. 經驗誤差:模型關於訓練樣本集的平均誤差(也稱經驗風險)。
  6. 結構風險:結構風險在經驗風險的基礎上加上表示模型複雜度的正則化項。
  7. 泛化誤差:模型在新樣本集(測試集)上的平均誤差。
    泛化誤差 = 偏差 + 方差 + 噪聲
  8. 噪聲:描述了在當前任務上任何學習算法所能達到的期望泛化誤差的下界,即刻畫了學習問題本身的難度。

1.1 偏差和方差

返回頂部
如果模型是低偏差和低方差,那肯定是最好的一個選擇。
但是偏差和方差在一定程度上是矛盾的:
如果偏差降低,那方差可能會相應的升高;
如果方差降低,那偏差可能相應升高。
所以我們是儘量的尋求偏差和方差的一個平衡點。

下圖比較形象的表達偏差和方差的含義:
偏差和方差
偏差太大,說明模型欠擬合;
方差太大,說明模型過擬合。

2. 欠擬合和過擬合

返回頂部

2.1 學習曲線

通過學習曲線來識別模型是否發生了欠擬合、過擬合:
學習曲線
橫軸爲訓練樣本數量,縱軸爲誤差

2.2 複雜程度曲線

複雜程度曲線
橫軸爲模型複雜程度,縱軸爲誤差
上圖中:模型在點A處,在訓練集以及測試集上同時具有較高的誤差,此時模型的偏差較大,模型欠擬合
模型在點C處,在訓練集上具有較低的誤差,在測試集上具有較高的誤差,此時模型的方差較大,模型過擬合
模型複雜程度控制在點B處爲最優。

2.3 支持向量機的過擬合和欠擬合

返回頂部
支持向量機過擬合和欠擬合
支持向量機採用的正則化係數C=1λC = \frac{1}{\lambda}是常規正則化係數的導數,C越大,過擬合;C越小,欠擬合,更容易記憶。

2.4 KNN迴歸的過擬合和欠擬合

返回頂部
n_neighbor=25
n_neighbor=5
鄰居數(n-neighbors)越大,欠擬合(bias);越小,過擬合(vias)

3. 如何解決欠擬合和過擬合

返回頂部

3.1 解決欠擬合

  1. 增加特徵項;
  2. 添加多項式特徵項;
  3. 減小正則化係數;
  4. 增加模型複雜度。

3.2 解決過擬合

過擬合問題是機器學習和深度學習裏面主要需解決的一個問題。解決過擬合的辦法主要有:

  1. 重新做特徵工程;
  2. 增加訓練樣本數量;
  3. 降低模型複雜程度;
  4. 增大正則項係數;
  5. 採用dropout方法【用於神經網絡】;
  6. early stoping,早停法【當模型在驗證集上的誤差比上一次訓練結果差的時候停止訓練】;
  7. 減少迭代次數;
  8. 增大學習率;
  9. 添加噪聲數據;
  10. 樹結構中,可以對樹進行剪枝。
    以上只是舉一些例子,不同的問題還是需要根據不同的情況分析

歡迎關注,敬請點贊!
返回頂部

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