當咱們討論預測模型時,預測偏差能夠分解爲兩個主要部分:由「偏倚」引發的偏差,以及由「方差」引發的偏差。模型最小化偏倚和方差的能力之間存在着權衡。理解這兩種類型的錯誤能夠幫助咱們診斷模型結果,避免過擬合或欠擬合。算法
理解不一樣的偏差源是如何致使偏倚和方差的,能夠幫助咱們改進數據的擬合過程,從而得到更精確的模型。咱們從概念,圖形以及數學公式三個方面來定義偏倚和方差。機器學習
咱們可使用靶心圖對偏倚和方差進行可視化。假設靶心表示模型完美地預測真實值。隨着偏離靶心,咱們的預測值將會愈來愈差。假設咱們屢次重複建模,獲得多個預測值,對應着靶子上的每一次投擲。考慮到咱們收集到的訓練集的差別性,每一次投擲均表明模型的一次實現。有時,咱們會獲得一個很好的訓練數據集,預測結果很好,離靶心很近。然而,有時咱們的訓練集可能包含不少離異點或者一些不標準的數值,致使預測效果不好。這些預測結果對應着靶子上的一系列投擲點。函數
咱們能夠繪製四種不一樣的例子來表示高/低誤差和方差的組合。
@圖片學習
記預測變量爲Y,協變量爲X,假設他們之間的關係爲:
@圖片測試
其中,偏差項服從正態分佈:
@圖片圖片
咱們可使用線性迴歸或者其餘建模方法,來創建模型f^(X)預測函數f(X)。這這種狀況下,在點x處的均方偏差爲:
@圖片數學
這個偏差能夠分解爲偏倚和方差項:
@圖片變量
第三項爲殘差,是真實關係中的噪聲項,任何模型都不能從根本上減小它。給定真實模型以及無限的數據去校準,咱們應該可以把偏倚和方差降爲0。然而,在一個不完美模型以及有限數據的世界中,咱們只能在最小化偏倚和方差之間進行權衡。可視化
讓咱們進行一個簡單的模型構建任務。咱們但願爲下屆選舉中投票給共和黨總統的人創建一個模型。隨着模型的發展,這在概念上是微不足道的,一般比人們想象中的「建模」要簡單的多,但它有助於咱們清楚地說明偏倚和方差之間的區別。自適應
一個簡單的,或與有缺陷的(下面咱們將會看到),創建這個模型的方法是隨機選擇50個電話號碼,並打電話詢問他們計劃在下次選舉中投票給誰。假設咱們獲得一些結果:
@圖
從上面數據中,咱們能夠估算投票給共和黨的機率爲:13/(13+16)=44.8%。咱們發佈新聞說民主黨將領超10個百分比的票數贏得選取。可是,當選舉來臨時,他們實際上落後10個百分比票數落選。那確定反映出咱們預測的結果很差。咱們的模型出了什麼問題?
顯然,咱們構建的模型有不少問題:咱們僅僅從電話簿中進行抽樣,因此受訪羣衆僅僅是出如今電話名單中的人;咱們沒有跟進無應答羣衆,他們可能有不一樣的投票模式或偏向。並且,樣本量過小,不能很好表明總體。
把這些偏差緣由都放在一個大盒子裏是很迷惑的。實際上,他們能夠按照致使偏倚的緣由和致使方差的緣由進行劃分。
例如,使用電話簿進行抽樣是產生」偏倚「的緣由之一。僅僅調查特定類別的人羣,將會致使咱們重複建模所獲得的結果將是一致的。相似的,沒有跟進無應答羣衆是偏倚的另外一來源之一,它頗有可能會改變與應答羣衆混合的結果。在靶心圖中,這些將會使咱們偏離靶心,但不會改變估計數的分散程度。
另外一方面,樣本量較小是方差的來源之一。若是咱們增長咱們的樣本量,每次重複調查和與測試,結果就會更加一致。因爲偏倚的影響,咱們獲得的結果可能仍然很是不許確,可是預測的方差將會減小。小樣本量將會致使估計值在靶心圖上的分佈比較分散。增大樣本量可使得估計值分佈更加集中,可是它們仍可能比較偏離靶心。
通常狀況下,用於構建模型的數據集是在模型構建以前提供的,建模人員不能簡單地說:「讓咱們增長樣本量以減小方差。」在實踐中,偏倚和方差之間存在着權衡,其中一個減小將會致使另外一個增長。最小化模型的偏差須要仔細權衡偏倚和方差。
讓咱們看一個更實際的例子。假設咱們有一個訓練數據集,包含選民的三個信息:選民的政黨登記,選民的財富,以及選民的宗教信仰信息。以下圖:X軸表示財富信息,Y軸表示宗教信息,紅色圈圈表明共和黨選民,藍色圈圈表明民主黨選民。咱們要利用財富和宗教信息來預測選民登記。
@圖
有不少方法來完成這個建模任務。對於這種二分類數據,咱們常用邏輯迴歸。然而,若是咱們認爲變量之間存在非線性關係、那麼使用更靈活的數據自適應方法可能會更加理想。其中,k-近鄰算法就是一個很是靈活的機器學習算法。