1. 程式人生 > >機器學習系列之偏差、方差與交叉驗證

機器學習系列之偏差、方差與交叉驗證

一、偏差與方差

在機器學習中,我們用訓練資料集去訓練(學習)一個model(模型),通常的做法是定義一個Loss function(誤差函式),通過將這個Loss(或者叫error)的最小化過程,來提高模型的效能(performance)。然而我們學習一個模型的目的是為了解決實際的問題(或者說是訓練資料集這個領域(field)中的一般化問題),單純地將訓練資料集的loss最小化,並不能保證在解決更一般的問題時模型仍然是最優,甚至不能保證模型是可用的。這個訓練資料集的loss與一般化的資料集的loss之間的差異就叫做generalization error。Bias是 “用所有可能的訓練資料集訓練出的所有模型的輸出的平均值” 與 “真實模型”的輸出值之間的差異;
Variance則是“不同的訓練資料集訓練出的模型”的輸出值之間的差異。

generalization error又可以細分為Bias和Variance兩個部分。而bias和variance分別從兩個方面來描述了我們學習到的模型與真實模型之間的差距。

偏差度量了學習演算法的期望預測與真實結果的偏離程度,即刻畫了演算法本身的擬合能力。

方差度量了同樣大小的訓練集的變動所導致的學習效能變化,即刻畫了資料擾動所造成的影響。

噪聲則表達了在當前任務上任何學習演算法所能達到的期望泛化誤差的下界,即刻畫了學習問題本身的難度。

Bias:偏差描述的是根據樣本擬合出的模型的預測結果與樣本真實結果的差距,就是預測結果與真實結果的誤差。Low Bias,就是增加模型的引數,複雜化模型,但容易過擬合overfiting,對於圖中high variance,點分散。

Variance:方差描述的是根據樣本訓練出來的模型在測試集上的表現。low variance 減少模型引數,簡化模型,但容易欠擬合,對應於圖紙high bias,點偏離中心。

針對偏差和方差的思路

偏差:實際上也可以稱為避免欠擬合。

1、尋找更好的特徵 -- 具有代表性。

2、用更多的特徵 -- 增大輸入向量的維度。(增加模型複雜度)

方差:避免過擬合

1、增大資料集合 -- 使用更多的資料,噪聲點比減少(減少資料擾動所造成的影響(緊扣定義))

2、減少資料特徵 -- 減少資料維度,高維空間密度小(減少模型複雜度)

3、正則化方法

4、交叉驗證法

2、Bias、Variance和K-fold的關係

K-fold Cross Validation的思想:將原始資料分成K組(一般是均分),將每個子集資料分別做一次驗證集,其餘的K-1組子集資料作為訓練集,這樣會得到K個模型,用這K個模型最終的驗證集的分類準確率的平均數作為此K-CV下分類器的效能指標。

通過它的思想,交叉驗證相當於增大了資料集合,減少了訓練集的變動所導致的學習效能變化,所以解決了方差的問題(資料擾動所造成的影響)。交叉驗證後,模型的預測是所有資料訓練結果的平均值,這就解決了偏差的問題。

3、Bagging與Boosting與偏差、方差的關係

https://www.zhihu.com/question/27068705

https://blog.csdn.net/shenxiaoming77/article/details/53894973

http://www.cnblogs.com/jasonfreak/p/5720137.html

http://www.cnblogs.com/jasonfreak/p/5657196.html