前言
這篇文章是關於調參中常遇到的欠擬合與過擬合問題,通過將四個概念: 偏差,方差,欠擬合,過擬合連接起來,能夠更好的理解這個問題。 最後,針對該問題,我提出了幾點建議。
泛化能力[1]
機器學習演算法的目的是使得我們的演算法能夠在先前未預測的新輸入上表現良好,而不只是在訓練集上表現良好。 而這種在新數據上表現良好的能力被稱為演算法的泛化能力。
簡單來說, 如果說一個模型在測試集上表現的與訓練集一樣好,我們就說這個模型的泛化能力很好;如果模型在訓練集上表現良好,但在測試集上表現一般,就說明這個模型的泛化能力不好。
從誤差的角度來說,泛化能力差就是指的是測試誤差比訓練誤差要大的情況,所以我們常常採用訓練誤差,測試誤差來判斷模型的擬合能力,這也是測試誤差也常常被稱為泛化誤差的原因。
欠擬合與過擬合
我們在訓練模型的時候有兩個目標:
- 降低訓練誤差,尋找針對訓練集最佳的擬合曲線。
- 縮小訓練誤差和測試誤差的差距,增強模型的泛化能力。
這兩大目標就對應機器學習中的兩大問題: 欠擬合與過擬合。 具體來講:
- 欠擬合是指模型在訓練集與測試集上表現都不好的情況,此時,訓練誤差,測試誤差都很大。
- 過擬合是指模型在訓練集上表現良好,但在測試集上表現不好的情況,此時,訓練誤差很小,測試誤差很大, 模型泛化能力不足。