error=bias+variance
類比射擊靶子
bias是一開始就瞄準錯了
variance是手抖導致的與瞄準點之間的差距
模型複雜往往會導致,數據多散佈開。
bias大是指大家都偏離靶心很大;小bias是指數據的均值距離靶心很近,但這並不代表數據都距離靶心近,很可能是比較分散的。
藍色線條爲平均,黑色爲靶心。
模型簡單,比較集中但是平均起來並不怎麼貼合靶心;模型複雜,比較分散但平均起來比較貼合靶心。
model越複雜,space越大。target在其中的可能性就越大。
bias VS variance
瞄的越來越準(紅色),越來越貼近靶心;散佈的越來越大(綠色);綜合考慮兩方面因素(藍色),3附近較好。最右邊,overfitting,最左邊underfitting;即error來自variance較多則過擬合,來自bias較多,則欠擬合。
overfitting VS underfitting
- 模型不適合訓練集,bias大,欠擬合
- 訓練集效果好,測試集有很大誤差,variance大,過擬合
對策:bias造成的誤差,重新設計更復雜的模型,考慮更多的特徵進來。
對策:variance造成的誤差
- 更多的數據。
- 正則化,更平滑的函數。正則化簡單理解爲增加條件限定縮小範圍,讓樣本更加集中來減少variance。缺點是該條件原本是不存在的,很可能與目標偏差更遠。
model selection
真正的測試集(橙色)和驗證集(綠色)是有區別的。
解決方法
- 交叉檢驗
- N疊交叉檢驗
這時候public上的才能夠真正反映private上的err