在用機器學習算法對數據進行擬合的過程當中,每每一開始得不到滿意的結果,例如 AUC 值不夠高,此時咱們就須要對模型進行調優,那麼調優的方向是什麼?有沒有調優方法論可遵循?答案固然是有的,bias 和 variance 這兩個指標就能起到指導調優的做用。html
咱們先來看一個例子,假設實驗室收集了老鼠的體重和大小的數據,咱們能夠創建一個模型,經過輸入老鼠的大小來預測老鼠的體重,部分數據散點圖以下。在訓練以前,咱們仍是將數據拆分爲兩部分,紅色的點爲訓練集,綠色的點表示測試集:算法
接着咱們用兩個模型來擬合訓練數據,第一個模型採用線性算法,以下:機器學習
能夠看到,線性模型並不能很好的描繪真實數據,咱們通常使用 MSE (Mean Squared Error) 來量化這種擬合能力,即預測值和實際值之間的差值的平方的均值。post
接下來咱們訓練第二個較複雜的模型,該模型的曲線以下:學習
第二個模型完美的貼合了訓練數據,即用這個模型來預測訓練數據,得到的預測值與實際值相等。測試
至此,咱們再給出 bias 的定義就不難理解了:cdn
Bias 指標衡量了在訓練階段,機器學習算法和真實數據之間的差別。htm
從上面的例子能夠看出,模型二的 bias 遠遠低於模型一的 bias。blog
訓練完模型後,咱們還須要使用測試集對模型進行評估,下圖是模型一的評估結果,咱們用藍色虛線來表示測試結果中,預測值和實際狀況的差別(也可使用 MSE 來衡量):get
一樣,模型二的評估結果以下:
和 Bias 相反的是,模型一的預測效果卻遠遠好於模型二的,這說明模型二的預測能力並不穩定,咱們試着給 Variance 也下個定義:
Variance 表示在不一樣測試集間,預測效果間的誤差程度,誤差程度越大,variance 越大,反之越小。
顯然模型二的 variance 較大;而對於不一樣測試集,模型一預測的準確性很是接近,咱們能夠說模型一的 variance 較小。
下圖摘自 Scott Fortmann-Roe's 的博客,它可以很好的描繪咱們在機器學習中的調優方向,其中左上角是最理想的模型,它是終極目標,若是實在作不到,你應該朝着左下角的 High Bias + Low Variance 努力。
上圖中,右上角的狀況又被稱爲過擬合 (Overfit),它表示你的模型在訓練時的表現很是好,但在測試過程當中的表現又很是差,上文的模型二就是典型的過擬合狀況。有過擬合確定就有欠擬合 (Underfit),它表示你的模型沒法很好的刻畫樣本數據。同時,過擬合通常對應你使用了一個較複雜的模型,而欠擬合通常和簡單模型相對應。不少時候,咱們說模型調優,實際上指的是:
在簡單模型和複雜模型間尋求平衡。
如何作到呢?這裏有一些經驗方法:
參考:
Machine Learning Fundamentals: Bias and Variance
相關文章: