吳恩達公開課心得——模型的驗證與選擇

模型選擇

機器學習的模型選擇有很大的自由度,例如特徵的數量,特徵的階數,訓練集和驗證集的選擇,正則化參數lambda的選擇等等。

假如你已經選擇好了機器學習的模型,接下來只需要看它的泛化能力,那麼你需要從訓練集中分離出大概30%的測試用例,組成測試集,用於驗證你從訓練集獲得的模型的泛化能力。

假如你對模型的選擇還存在疑慮,那麼建議你用60%的用例用作訓練集,用20%的用例用作交叉驗證集,最後剩下20%用作測試集。交叉驗證集的目的在於選出效果最好的模型。具體步驟如下:

1.假如你有10個待選的模型,你應該用訓練集分別訓練這10個模型,得到19組模型參數theta。

2.這10個模型都用交叉驗證集來計算誤差,然後選擇一個誤差最小的模型作為最終模型。

3.用測試集來驗證最終模型的泛化能力。

如何判斷某個模型是存在大偏差問題(欠擬合)還是大方差問題(過擬合)?

吳恩達公開課心得——模型的驗證與選擇

正則參數lambda的選擇如下圖所示:

吳恩達公開課心得——模型的驗證與選擇

學習曲線:

學習曲線的橫座標是訓練樣本和測試樣本數量,縱座標是代價函數。例如我們選擇m=5,10,20,30,40,那麼我們就必須分別用m個樣本去進行五次模型訓練,並得到訓練集的均方差,然後針對得到的五個模型用驗證集去計算五次的均方差,分別描點在座標上。那麼就會有如下規律:

如果訓練集偏差和驗證集偏差都較大,且相近,那麼就是存在高偏差的問題,即欠擬合。此時使用再多的訓練集也沒有幫助。

如果訓練集偏差小,驗證機偏差大,那麼就是存在高方差的問題,即過擬合,此時使用更多的訓練集是有幫助的,但減少特徵數量可能是更好的辦法。

最終總結如下:

對於高方差問題,建議優選採取減少特徵數量或者增加正則參數lambda的方法,也可以考慮增加訓練樣本的方法。

對於高偏差問題,可以考慮增加特徵數量或者增加特徵的階數或者減少正則參數lambda。


分享到:


相關文章: