偏差和方差有什麼區別?


偏差:描述的是預測值(估計值)的期望與真實值之間的差距。偏差越大,越偏離真實數據,如下圖第二行所示。

方差:描述的是預測值的變化範圍,離散程度,也就是離其期望值的距離。方差越大,數據的分布越分散,如下圖右列所示。

參考:Understanding the Bias-Variance Tradeoff


想像你開著一架黑鷹直升機,得到命令攻擊地面上一隻敵軍部隊,於是你連打數十梭子,結果有一下幾種情況:
1.子彈基本上都打在隊伍經過的一棵樹上了,連在那棵樹旁邊等兔子的人都毫髮無損,這就是方差小(子彈打得很集中),偏差大(跟目的相距甚遠)。
2.子彈打在了樹上,石頭上,樹旁邊等兔子的人身上,花花草草也都中彈,但是敵軍安然無恙,這就是方差大(子彈到處都是),偏差大(同1)。
3.子彈打死了一部分敵軍,但是也打偏了些打到花花草草了,這就是方差大(子彈不集中),偏差小(已經在目標周圍了)。
4.子彈一顆沒浪費,每一顆都打死一個敵軍,跟抗戰劇里的八路軍一樣,這就是方差小(子彈全部都集中在一個位置),偏差小(子彈集中的位置正是它應該射向的位置)。

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


Bias:誤差,對象是單個模型,期望輸出與真實標記的差別

Variance:方差,對象是多個模型

從同一個數據集中,用科學的採樣方法得到幾個不同的子訓練集,用這些訓練集訓練得到的模型往往並不相同。

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

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

一般來說,偏差、方差和模型的複雜度之間的關係是這樣子滴:

實際中,我們需要找到偏差和方差都較小的點。

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

從而獲得較低的泛化誤差。

對數據感興趣的小夥伴,歡迎交流,微信公共號:一白侃數


Bias:描述的是預測值真實值之間的差距。
Variance:描述的是預測值的變化範圍,離散程度,也就是離其真實值的距離。
ps:
預測值,即隨機變數的取值。
真實值,即隨機變數的期望。


generalization error is related to bias and variance on training examples
訓練後(模型的)泛化誤差與偏差和方差相關
Domingos, P. A unified bias- variance decomposition and its applications. In Proceedings of the 17th International Conference on Machine Learning (Stanford, CA, 2000), Morgan Kaufmann, San Mateo, CA, 231~238

偏差描述的是模型傾向同類預測錯誤的程度,方差描述的是模型在做同類預測時出現的波動程度(可參考 Jason Gu 的圖例)。這兩個度量都與模型的泛化誤差相關,兩者值越小,對應的泛化誤差也就越小。

舉個例子:對於一個非線性分類問題而言(如XOR),簡單的線性分類器(無維度空間映射)由於自身特性並不能較好地進行類別劃分,model會出現較大的偏差;而決策樹模型作為非線性分類器,能較好的擬合訓練樣本,偏差值較小,但若模型過於擬合訓練樣本,測試樣本出現了訓練樣本考慮不周的情況,則容易出現預測誤差,即方差值較高。

對於一個model而言,我們當然希望泛化誤差越小越好,可以通過一些方法來減小上述的偏差和方差。例如,常見的random forest通過採樣和融合多棵決策樹來減小泛化誤差。當然了,這是學術研究的一個方向,方法有很多。


1、你指的偏差是標準偏差嗎?如果是的話,請看下面的定義:
2、樣本中各數據與樣本平均數的差的平方和的平均數叫做樣本方差;樣本方差的算術平方根叫做樣本標準(偏)差。樣本方差和樣本標準差都是衡量一個樣本波動大小的量,樣本方差或樣本標準差越大,樣本數據的波動就越大。
3、兩者之間,我沒有看出來太大的區別,如果非要說一點的話,我覺得方差的量綱是隨機變數的量綱的平方,故在使用上有時不方便,此時可改用其算術平方根,與隨機變數保持一致的單位。


演算法在不同訓練集上所得的結果有可能不同,即使這些訓練集來自同一個分布。偏差度量學習演算法與預測值的偏離程度,刻畫演算法本身的擬合能力;方差度量同樣大小訓練集的變動所導致的訓練結果的變化。刻畫數據擾動對演算法的影響,描述了訓練結果的分散程度。


在忽略雜訊的情況下,泛化誤差可分解為偏差、方差兩部分。
偏差:度量學習演算法的期望預測與真實結果的偏離程度,也叫擬合能力。
方差:度量了同樣大小的訓練集的變動所導致的學習性能的變化,即刻畫了數據擾動造成的影響。

---摘自《機器學習》,周志華


偏差:估計值-實際值
方差:E{(估計值-實際值)^2}


雖然比較黃,但容易理解

想像你在make love :)

在你快要射的時候,

偏差就是你射不準,離洞口有距離,射歪了。

方差就是你射不穩,波動性大,亂射。


如果出現方差,沒啥後果。

但如果出現偏差,你是要負一定責任的。


方差描述一組數據離散程度。
誤差描述預測值和真實值差值。
二者的描述對象不同。


報道是不會出方差的,懂不懂得啊?


yep


偏差方差都是對泛化性能的度量。

泛化性能用期望泛化誤差表示,而期望泛化誤差可以分解為偏差方差和雜訊。

其中:

- 偏差度量了學習演算法的預測值與真實值的偏離程度

- 方差度量了同樣大小的訓練集變動導致學習性能的變化

數學表示:

E(f;D) = (overline{f}(x)-y)^2 + E_D[(f(x;D)- overline{f}(x))^2] + E_D[(y_D-y)^2]E(f;D) = bias^2(x)+var(x)+varepsilon^2

其中:

更詳細內容請看《機器學習》-周志華 2.5節


簡單理解:high bias 就是欠擬合(underfitting) ; high variance 就是過擬合(overfitting)


一個是bias,一個是variance


推薦閱讀:

微軟識花是怎麼實現的?
機器學習&數據挖掘方向的計算機研究生該如何整體提升自己的技術水平?
最數學的計算機科學方向有哪些?
Kaggle如何入門?
常用的機器學習演算法比較?

TAG:數據挖掘 | 數學 | 機器學習 | 統計 |