高/低方差、高/低偏差

什麼啊什麼Q發表於2020-12-24

概念

偏差: 描述的是預測值(估計值)的期望與真實值之間的差距。偏差越大,越偏離真實資料集。

這裡寫圖片描述

(Ps:假設靶心是最適合給定資料的模型,離靶心越遠,我們的預測就越糟糕)

方差: 描述的是預測值的變化範圍,離散程度,也就是離其期望值的距離。方差越大,預測結果資料的分佈越散。
這裡寫圖片描述

基於偏差的誤差: 所謂基於偏差的誤差是我們模型預期的預測與我們將要預測的真實值之間的差值。偏差是用來衡量我們的模型的預測同真實值的差異。

基於方差的誤差: 基於方差的誤差描述了一個模型對給定的資料進行預測的可變性。比如,當你多次重複構建完整模型的程式時,方差是,在預測模型的不同關係間變化的多少。

接下來,我們把四張圖合併起來:
這裡寫圖片描述
解釋:
左上:低偏差,低方差。表現出來就是,預測結果準確率很高,並且模型比較健壯(穩定),預測結果高度集中。

右上:低偏差,高方差。表現出來就是,預測結果準確率較高,並且模型不穩定,預測結果比較發散。

左下:高偏差,低方差。表現出來就是,預測結果準確率較低,但是模型穩定,預測結果比較集中。

右下:高偏差,高方差。表現出來就是,預測結果準確率較低,模型也不穩定,預測結果比較發散。

舉個例子,讓你二次開竅

想象你開著一架黑鷹直升機,得到命令攻擊地面上一隻敵軍部隊,於是你連打數十梭子,結果有一下幾種情況:

1.子彈基本上都打在隊伍經過的一棵樹上了,連在那棵樹旁邊等兔子的人都毫髮無損,這就是方差小(子彈打得很集中),偏差大(跟目的相距甚遠)。

2.子彈打在了樹上,石頭上,樹旁邊等兔子的人身上,花花草草也都中彈,但是敵軍安然無恙,這就是方差大(子彈到處都是),偏差大(跟目的相距甚遠)。

3.子彈打死了一部分敵軍,但是也打偏了些打到花花草草了,這就是方差大(子彈不集中),偏差小(已經在目標周圍了)。

4.子彈一顆沒浪費,每一顆都打死一個敵軍,跟抗戰劇裡的八路軍一樣,這就是方差小(子彈全部都集中在一個位置),偏差小(子彈集中的位置正是它應該射向的位置)。

方差,是形容資料分散程度的,算是“無監督的”,客觀的指標,偏差,形容資料跟我們期望的中心差得有多遠,算是“有監督的”,有人的知識參與的指標。

三次理解

偏差(bias):物件是單個模型, 期望輸出與真實標記的差別。

方差(Variance):物件是多個模型,表示多個模型差異程度。

這裡寫圖片描述

以上圖為例:
1. 左上的模型偏差最大,右下的模型偏差最小;
2. 左上的模型方差最小,右下的模型方差最大

為了理解第二點,可以看下圖。藍色和綠色分別是同一個訓練集上取樣得到的兩個訓練子集,由於採取了複雜的演算法去擬合,兩個模型差異很大。如果是拿直線擬合的話,顯然差異不會這麼大。

這裡寫圖片描述

一般來說,偏差、方差和模型的複雜度之間的關係如下圖所示:

這裡寫圖片描述

越複雜的模型偏差越小,而方差越大。

我們用一個引數少的,簡單的模型進行預測,會得到低方差,高偏差,通常會出現欠擬合。

而我們用一個引數多的,複雜的模型進行預測,會得到高方差,低偏差,通常出現過擬合。

這裡寫圖片描述
實際中,我們需要找到偏差和方差都較小的點。從上圖可以看出在偏差和方差都較小的點處,total Error是最少的

XGBOOST中,我們選擇儘可能多的樹,儘可能深的層,來減少模型的偏差;
通過cross-validation,通過在驗證集上校驗,通過正則化,來減少模型的方差從而獲得較低的泛化誤差。

擴充

數學上的定義:

我們定義我們要預測的變數為Y,協變數為X,我們假設有Y=f(X)+ϵ,其中誤差項服從均值為0的正態分佈.
我們用線性迴歸或者別的模型來估計f(X) 為.其中,對x來說,誤差為:

將上式展開,然後用偏差和方差表述:

注意:最後一項為噪聲,是無法通過模型降低的。

通過上面的式子也可看出,要使得誤差低,就要使得偏差和方差都要低。

參考文獻

為了幫助理解,尤其是擴充部分,可以參考一下參考文獻

  1. 理解機器學習中的偏差與方差
  2. Understanding the Bias-Variance Tradeoff

相關文章