我們在使用線性回歸和邏輯斯特回歸的時候,高次冪的多項式項可能造成過擬合的問題。而我們使用過擬合這一方法來改善或者減少這一問題。
我們所要做的就是使θ盡可能接近0,那么對於高階項對於hθ(x)的影響也會盡量小,幾乎沒有。這樣就預防了過擬合。
正則化的線性回歸模型

是正則項,λ是正則化參數,λ的作用是控制兩個目標之間的取舍,即更好地擬合訓練集的目標和將參數控制得更小的目標,從而保持假設模型的相對簡單避免出現過擬合的現象。所以對於λ的值應當慎重選擇。
既然我們加入了正則項,那么我們在梯度下降的時候也是要做出一點改變,將梯度下降算法分為兩種情形

對於上面的算法中j=1,2,……,n時的更新石子進行調整可得:

可以看出,正則化線性回歸的梯度洗將算法的變化在於,每次都在原有算法更新規則的基礎上令θ值減少了一個額外的值。
線性回歸正則方程式正則化

正則化的邏輯斯特回歸模型

要最小化該代價函數,通過求導,得出梯度下降算法為:

最后附上正則化的邏輯斯特回歸模型的python代碼實現
import numpy as np def costReg(theta,X,y,learningRate): theta=np.matrix(theta) X=np.matrix(X) y=np.matrix(y) first=np.multiply(-y,np.log(sigmoid(X*theta.T))) second=np.multiply((1-y),np.log(1-sigmoid(X*theta.T)))#multiply數組和矩陣對應位置相乘,輸出與相乘數組/矩陣的大小一致 reg=(learningRate/(2*len(X))*np.sum(np.power(theta[:,1:theta.shape[1]],2)))#thate.shape[1]指thate矩陣的第一維 return np.sum(first-second)/len(X)+reg
