偏差與方差及如何權衡

1.什麼是偏差與方差

偏差(Bias)和方差(Variance)是機器學習訓練中不可避免的問題。
先來看看什麼是偏差和方差:
在這裏插入圖片描述
我沒看到左下角這幅圖,箭完全偏離了靶心,這種情況叫做偏差。
再看右上角這幅圖,箭隨機分佈在靶心周圍,這叫方差。
可以把靶心看作模型的預測目標,箭看作模型的預測值,模型的預測結果也同樣會出現偏差和方差兩種情況。

一個模型的誤差通常來源於三種情況:
模型誤差=偏差+方差+不可避免誤差
不可避免誤差往往是無法消除的,例如環境噪聲等。

2.造成偏差與方差的原因

偏差的出現往往是模型本身有問題,例如我們的要擬合一個二次函數,但是預測模型爲一個一次函數,預測結果就會出現偏差。
方差的體現一般在輸入數據的一個細微擾動就會得到不同的輸出結果,通俗的來說模型可能連輸入數據裏的噪聲也一起學到了,所以測試數據與訓練數據分佈稍有不同預測結果就會有較大差異。

  • 參數化算法對數據進行參數化,形成很多的特徵,這種方法訓練速度非常快,而且也不需要很多的數據,但是他不是很靈活。這些方法通常都是高偏差的,例如邏輯迴歸
  • 非參數化算法對目標函數做出很少或者根本不做任何假設,但是它需要更多的數據,訓練速度非常慢,模型複雜度非常高,但是模型非常強大。這些方法通常都是高方差的,例如KNN、決策樹

3.如何平衡偏差與方差

在上面的例子中我們可以看到一個趨勢:參數或者線性的機器學習算法一般都會有一個很高的偏差和一個很低的方差。但是,非參數或者非線性的機器學習算法一般都有一個很低的偏差和一個很高的方差。所有,我們需要在這兩者之間找到一個平衡點,來優化我們的算法。想要獲得低方差和低偏差是矛盾的,我們只能對他們做一個平衡。

比如,KNN 算法有很低的偏差和很高的方差,但是我們可以通過調整 k 的值來改變偏差和方差之間的權衡關係,從而達到一個比較平衡的狀態。

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

解決高方差的通常手段:

1.降低模型複雜度
2.減少數據維度;降噪
3.增加樣本數
4.使用驗證集
5.模型正則化

參考:
https://www.cnblogs.com/VitoLin21/p/11376335.html
https://blog.csdn.net/CoderPai/article/details/80494230

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章