誤差來源——偏差與方差
在使用機器學習模型進行預測時,一個不可避免的問題是我們始終會遇到誤差。那麼誤差到底是怎麼產生的呢?
其實誤差的來源有兩方面:
偏差(Bias):數據偏離平均值的差。
方差(Variance):隨機變數和其數學期望(即均值)之間的偏離程度,多指數據的波動。
1、偏差與方差的估計
對於樣本 ,假設其均值為 ,方差為 ,下面對這兩個兩進行估計。
從樣本 中取N個樣本{ }
計算N個點的平均值m,用m來估計,顯然平均值m並不等於
接著,計算m的期望
可以看出,m是的無偏估計(估計量的期望與樣本的期望相等)。
再來看m的方差
即,樣本量越大,m的方差就越小。
再來用 估計
來看的期望
(具體推導過程可參照概率論裡面相關章節)
可見,是比樣本方差 小,二者並不相等,屬於有偏估計。
2、方差與偏差的四種狀態
偏差與方差有以下4中不同的存在狀態。
考慮不同的訓練集,假設有100個數據集。採用 和考慮複雜一點的模型 他們的偏差和方差如下圖所示:
只採用一次項來擬合的時候,可以看到條線較集中,即方差較小,但是藍色的那條直線並不能較好地擬合樣本數據(黑色的線),即偏差較大。
當模型變得複雜,採用五次項之後,得到的紅線變得非常雜亂,即方差較大,但是平均起來藍色的線能夠較接近黑色的樣本數據(黑色的線),即偏差較小。
簡單的模型受到數據的影響較小。
綜合來講
簡單模型是高偏差、低方差的
複雜模型是低偏差、高方差的
在模型變複雜的過程中,需要找到一個臨界點,平衡方差與偏差。
在模型逐漸複雜的過程中,一般情況下會越來越接近實際情況,偏差會越來越小,即曲線越描越準,但與此同時,每一次描的線的差別也會越來越大,即方差越變越大。
3、偏差與方差的處理
模型過於簡單時,不能較好的擬合數據,此時的誤差主要取決於偏差,此時稱模型為欠擬合;隨著模型越來越複雜,會越傾向於擬合更多的數據點,甚至是一些離羣的點,波動較大,,誤差主要取決於方差。這種模型往往在訓練集上表現得非常良好,但是到了測試集,誤差會明顯變大,此時稱模型為過擬合。
對於偏差大,即欠擬合的情況:
(1)選取更多的特徵加入訓練;
(2)選取更加複雜的模型
對於方差大,即過擬合的情況:
(1)增加訓練集的數據量,不會影響偏差,但有時候獲取數據很難。
(2)正則化,模型過於偏向正則項可能影響偏差。
(3)使用多種模型訓練數據,採用交叉驗證等方式選取最終模型。
本文參考國立臺灣大學2017年機器學習第二課(錯誤來自於哪裡?)
推薦閱讀: