讀古今文學網 > 機器學習實戰 > 8.5 權衡偏差與方差 >

8.5 權衡偏差與方差

任何時候,一旦發現模型和測量值之間存在差異,就說出現了誤差。當考慮模型中的「噪聲」或者說誤差時,必須考慮其的來源。你可能會對複雜的過程進行簡化,這將導致在模型和測量值之間出現「噪聲」或誤差,若無法理解數據的真實生成過程,也會導致差異的發生。另外,測量過程本身也可能產生「噪聲」或者問題。下面舉一個例子,8.1節和8.2節處理過一個從文件導入的二維數據。實話來講,這個數據是我自己造出來的,其具體的生成公式如下:

其中N(0,1)是一個均值為0、方差為1的正態分佈。在8.1節中,我們嘗試過僅用一條直線來擬合上述數據。不難想到,直線所能得到的最佳擬合應該是3.0+1.7x這一部分。這樣的話,誤差部分就是0.1sin(30x)+0.06N(0,1)。在8.2節和8.3節,我們使用了局部加權線性回歸來試圖捕捉數據背後的結構。該結構擬合起來有一定的難度,因此我們測試了多組不同的局部權重來找到具有最小測試誤差的解。

圖8-8給出了訓練誤差和測試誤差的曲線圖,上面的曲線就是測試誤差,下面的曲線是訓練誤差。根據8.3節的實驗我們知道:如果降低核的大小,那麼訓練誤差將變小。從圖8-8來看,從左到右就表示了核逐漸減小的過程。

圖8-8 偏差方差折中與測試誤差及訓練誤差的關係。上面的曲線就是測試誤差,在中間部分最低。為了做出最好的預測,我們應該調整模型複雜度來達到測試誤差的最小值

一般認為,上述兩種誤差由三個部分組成:偏差、測量誤差和隨機噪聲。在8.2節和8.3節,我們通過引入了越來越小的核來不斷增大模型的方差。

8.4節介紹了縮減法,可以將一些係數縮減成很小的值或直接縮減為0,這是一個增大模型偏差的例子。通過把一些特徵的回歸係數縮減到0,同時也就減少了模型的複雜度。例子中有8個特徵,消除其中兩個後不僅使模型更易理解,同時還降低了預測誤差。圖8-8的左側是參數縮減過於嚴厲的結果,而右側是無縮減的效果。

方差是可以度量的。如果從鮑魚數據中取一個隨機樣本集(例如取其中100個數據)並用線性模型擬合,將會得到一組回歸係數。同理,再取出另一組隨機樣本集並擬合,將會得到另一組回歸係數。這些係數間的差異大小也就是模型方差大小的反映1。上述偏差與方差折中的概念在機器學習十分流行並且反覆出現。

1. 方差指的是模型之間的差異,而偏差指的是模型預測值和數據之間的差異,請讀者注意區分。——譯者注

下一節將介紹上述理論的應用:首先從拍賣站點抽取一些數據,再使用一些回歸法進行實驗來為數據找到最佳的嶺回歸模型。這樣就可以通過實際效果來看看偏差和方差間的折中效果。