1、目的
1.1 過擬合的定義
過擬合:指的是模型對訓練集數據過度匹配,而對於新數據不能正確預測的情況。
1.2 正則化
正則化是用來解決模型過擬合問題的一種思路。
基本思路是在保留所有特徵的基礎上,減小參數的大小(參數指的是θ)。這樣每個特徵對於預測結果的權重都會減少。
原因是過擬合是由於多項式對曲線影響過大造成的(多項式指的就是x3,x4這種,通過減小θ就能降低這些多項式對結果的影響。
與之相對應的另一種優化思路是:把不能幫助我們正確預測結果的特徵去掉,剩下的特徵都是對預測結果起到關鍵作用的特徵。可以手工去除,也可以通過模型幫我們去除。該方式不是本文的重點。
2、原理
回憶一下線性迴歸的代價函數:
J(θ)=2m1i=1∑m(hθ(xi)−yi)2
正則化的目標是保證J(θ)最小的情況下θ最小,爲了使θ變小,我們把代價函數變成如下的形式:
J(θ)=minθ2m1[i=1∑m(hθ(xi)−yi)2+10000θ12+10000θ22+10000θ32+......]
簡寫爲:
J(θ)=minθ2m1[i=1∑m(hθ(xi)−yi)2+λj=1∑nθj2]
可以看到,如果想J(θ)最小的情況下θ最小,則λ就要變大;
當λ非常大的情況下,θ就只能是0了,則模型就成了一條直線了。
3、應用到線性迴歸
3.1 梯度下降
線性迴歸的梯度下降公式爲:
repeat{
θ0=θ0−αm1∑i=1m(hθ(x(i))−y(i))
θj=θj−αm1∑i=1m(hθ(x(i))−y(i))∗xj(i)
}
根據第2章的介紹,特徵正則化後梯度下降的公式變成了:
repeat{
θ0=θ0−αm1∑i=1m(hθ(x(i))−y(i))
θj=θj−[αm1∑i=1m(hθ(x(i))−y(i))∗xj(i)+mλθj]
}
等價於:
repeat{
θ0=θ0−αm1∑i=1m(hθ(x(i))−y(i))
θj=(1−mλ)θj−αm1∑i=1m(hθ(x(i))−y(i))∗xj(i)
}
由於mλ是個正數,則1−mλ<1,所以調整後的θj比之前要小。這樣就能得到比之前小的參數θ.
3.2 正規方程
正規方程的表達式爲:
θ=(XT∗X)−1∗XT∗y
正則化後變成了:
θ=(XT∗X+⎣⎢⎢⎢⎢⎡0000001000001000001000001⎦⎥⎥⎥⎥⎤)−1∗XT∗y
注意,新增的加數是一個矩陣,這個矩陣的維度與X有關聯,上述表達式只是爲了表示方便才寫成固定的矩陣;
這個矩陣與單位矩陣只差[1,1]這個座標,其它的都是一樣的。
4、應用到邏輯迴歸
應用到邏輯迴歸的方式與線性迴歸完全一致,這裏就不細說了。