決定下一步做什么
當(dāng)已經(jīng)完成了正則化線性回歸,也就是最小化代價(jià)函數(shù)的值。
但是遺憾的是,在你得到你的學(xué)習(xí)參數(shù)以后,如果你要將你的假設(shè)函數(shù)放到一組新的房屋樣本上進(jìn)行測(cè)試,假如說你發(fā)現(xiàn)在預(yù)測(cè)房價(jià)時(shí)產(chǎn)生了巨大的誤差。
那么,接下來我們應(yīng)該怎么做去改進(jìn)我們的算法呢?
1.1 獲取更多的訓(xùn)練樣本嗎?這個(gè)方法也許有用,但是代價(jià)比較大,優(yōu)先選用以下幾種方式。
1.2 嘗試減少特征的數(shù)量(防止過擬合)
1.3 嘗試增加特征的數(shù)量(防止欠擬合)
1.4 嘗試增加多項(xiàng)式特征
1.5 嘗試減少正則化程度lamba
1.6 嘗試增加正則化程度lamba
現(xiàn)在又有一個(gè)問題了,上面這么多方法,我們應(yīng)該怎么選用呢?別急別急,接下來我們跟著吳恩達(dá)老師的視頻一步一步的往下看。
評(píng)估一個(gè)假設(shè)
接下來我們看看我們得出的假設(shè)函數(shù)是否會(huì)存在過擬合和欠擬合的情況。

誒,問題又來了,怎么檢測(cè)是否過擬合呢?
對(duì)于這個(gè)簡單的例子,我們可以對(duì)假設(shè)函數(shù)進(jìn)行畫圖,然后觀察圖形趨勢(shì),但對(duì)于特征變量不止一個(gè)的這種一般情況,還有像有很多特征變量的問題,想要通過畫出假設(shè)函數(shù)來進(jìn)行觀察,就會(huì)變得很難甚至是不可能實(shí)現(xiàn)。
那對(duì)于特征變量不止一種的咋辦呢?
我們將數(shù)據(jù)分成訓(xùn)練集和測(cè)試集,通常用70%的數(shù)據(jù)作為訓(xùn)練集,用剩下30%的數(shù)據(jù)作為測(cè)試集。很重要的一點(diǎn)是訓(xùn)練集和測(cè)試集均要含有各種類型的數(shù)據(jù),通常我們要對(duì)數(shù)據(jù)進(jìn)行“洗牌”,然后再分成訓(xùn)練集和測(cè)試集。

模型選擇和交叉驗(yàn)證集
假設(shè)我們要在10個(gè)不同次數(shù)的二項(xiàng)式模型之間進(jìn)行選擇:

按吳恩達(dá)老師的說法是:乍一看越高次數(shù)的多項(xiàng)式模型更能適合我們的訓(xùn)練數(shù)據(jù)集。但是,適應(yīng)訓(xùn)練數(shù)據(jù)集并不代表著能推廣至一般情況,因此我們需要進(jìn)行交叉驗(yàn)證集來幫助選擇模型。
60%數(shù)據(jù)作為訓(xùn)練集,20%數(shù)據(jù)作為交叉驗(yàn)證集,剩下20%作為測(cè)試集
分別對(duì)應(yīng)的代價(jià)函數(shù):

模型選擇的方法為:
- 使用訓(xùn)練集訓(xùn)練出10個(gè)模型
- 用10個(gè)模型分別對(duì)交叉驗(yàn)證集計(jì)算得出交叉驗(yàn)證誤差(代價(jià)函數(shù)的值)
- 選取代價(jià)函數(shù)值最小的模型
- 用步驟3中選出的模型對(duì)測(cè)試集計(jì)算得出推廣誤差(代價(jià)函數(shù)的值)
診斷偏差和方差
當(dāng)我們運(yùn)行一個(gè)學(xué)習(xí)算法時(shí),如果這個(gè)算法的表現(xiàn)不理想,那么多半是出現(xiàn)兩種情況:
- 要么是偏差比較大,
-
要么是方差比較大。
換句話說,出現(xiàn)的情況要么是欠擬合,要么是過擬合問題。那么這兩種情況,哪個(gè)和偏差有關(guān),哪個(gè)和方差有關(guān)??
我們接下來看幅圖:
image.png

對(duì)于訓(xùn)練集,當(dāng) $d$ 較小時(shí),模型擬合程度更低,誤差較大;隨著 $d$ 的增長,擬合程度提高,誤差減小。
?
對(duì)于交叉驗(yàn)證集,當(dāng) $d$ 較小時(shí),模型擬合程度低,誤差較大;但是隨著 $d$ 的增長,誤差呈現(xiàn)先減小后增大的趨勢(shì),轉(zhuǎn)折點(diǎn)是我們的模型開始過擬合訓(xùn)練數(shù)據(jù)集的時(shí)候。

Bias : 偏差
Variance: 方差
通過圖片我們得知:
訓(xùn)練集誤差和交叉驗(yàn)證集誤差**近似**時(shí):偏差/欠擬合
訓(xùn)練集誤差和交叉驗(yàn)證集誤差相差**很大**的時(shí)候:方差/過擬合
正則化和偏差/方差
在我們?cè)谟?xùn)練模型的過程中,一般會(huì)使用一些正則化lambda方法來防止過擬合。那么如何選擇合適的lambda參數(shù)呢?
我們選擇一系列的想要測(cè)試的 $\lambda$ 值,通常是 0-10之間的呈現(xiàn)2倍關(guān)系的值(如:$0,0.01,0.02,0.04,0.08,0.15,0.32,0.64,1.28,2.56,5.12,10$共12個(gè))。 我們同樣把數(shù)據(jù)分為訓(xùn)練集、交叉驗(yàn)證集和測(cè)試集。

選擇合適lambda的參數(shù)步驟:
- 使用訓(xùn)練集訓(xùn)練出12個(gè)不同程度正則化的模型
- 用12個(gè)模型分別對(duì)交叉驗(yàn)證集計(jì)算的出交叉驗(yàn)證誤差
- 選擇得出交叉驗(yàn)證誤差最小的模型
-
運(yùn)用步驟3中選出模型對(duì)測(cè)試集計(jì)算得出推廣誤差,我們也可以同時(shí)將訓(xùn)練集和交叉驗(yàn)證集模型的代價(jià)函數(shù)誤差與λ的值繪制在一張圖表上:
image.png
當(dāng) $\lambda$ 較小時(shí),訓(xùn)練集誤差較小(過擬合)而交叉驗(yàn)證集誤差較大
?隨著 $\lambda$ 的增加,訓(xùn)練集誤差不斷增加(欠擬合),而交叉驗(yàn)證集誤差則是先減小后增加

