偏差和方差以及偏差方差權衡(Bias Variance Trade off)


當我們在機器學習領域進行模型訓練時,出現的誤差是如何分類的?

我們首先來看一下,什么叫偏差(Bias),什么叫方差(Variance):

這是一張常見的靶心圖

 可以看左下角的這一張圖,如果我們的目標是打靶子的話,我們所有的點全都完全的偏離了這個中心的位置,那么這種情況就叫做偏差

再看右上角這張圖片,我么們的目標是右上角這張圖片中心的紅色位置,我們射擊的點都圍繞在這個紅色的點的周圍,沒有大的偏差,但是各個點間過於分散不集中,就是有非常高的方差

我們進行機器學習的過程中,大家可以想象,我們實際要訓練的那個模型都是要預測一個問題,這個問題本身我們就可以理解成是這個靶子的中心,而我們根據數據來擬合一個模型,進而預測這個問題,我們擬合的這個模型其實就是我們打出去的這些槍,那么我們的模型就有可能犯偏差和方差這樣兩種錯誤
 一般來說我們說我們訓練一個模型,這個模型會有誤差,這個誤差通常來源於三方面 :

模型誤差 = 偏差(Bias) + 方差(Variance) + 不可避免的誤差

不可避免的誤差: 客觀存在的誤差,例如采集的數據的噪音等,是我們無法避免的

 
偏差和方差這兩個問題只是和我們的算法和我們訓練的模型相關的兩個問題,也就是說我們訓練一個模型它有偏差,主要的原因就在於我們很有可能 對這個問題本身的假設是不正確的,那么最典型的例子就是,如果我們針對非線性的數據或者說是非線性的問題,使用諸如線性回歸這種現象的方法的話,那顯然會產生非常高的偏差,那么在我們現實的環境中 欠擬合(underfitting)就是這樣的一個例子.
 還有典型的一個例子就是你訓練數據所采用的那個特征,其實跟這個問題完全沒有關系,比如說我們想預測一個學生的考試成績,但是呢,我們是用這個學生的名字來預測他的考試成績,那么顯然一定是高偏差的,因為這個特征本身離我們要預測的那個問題的目標考試成績之間是高度不相關的
 
方差在機器學習的過程中它的表現就在於數據的一點點的擾動都會極大的影響我們的模型,換句話說我們的模型沒有完全的學習到這個問題的實質這個中心而學習到了很多的噪音,通常來講我們的模型具有較高的方差的原因是我們的 模型太過復雜,比如說高階多項式回歸這樣的例子, 過擬合(overfitting)就會極大的引入方差
 
  • 有一些算法天生是高方差的算法。如kNN,決策樹等
  • 非參數學習通常都是高方差算法。因為不對數據進行任何假設
  • 有一些算法天生是高偏差算法。如線性回歸
  • 參數學習通常都是高偏差算法。因為堆數據具有極強的假設

大多數算法具有相應的參數,可以調整偏差和方差, 比如kNN中的k和線性回歸中使用多項式回歸。

偏差和方差通常是矛盾的,我們要在兩者之間找到一個平衡

在機器學習領域,主要的挑戰來自方差,當然主要是在算法方面,實際問題中原因不盡相同

解決高方差的通常手段:

  1.降低模型復雜度

  2.減少數據維度;降噪

  3.增加樣本數

  4.使用驗證集

  5.模型正則化


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM