一、過擬合
第一種是欠擬合,高偏差。第二種擬合較好。第三種過擬合,高方差。
過擬合:當(dāng)特征很多,訓(xùn)練集可能擬合的很好,甚至代價(jià)函數(shù)的值約等于0,但是這個(gè)模型卻不能泛化到新的數(shù)據(jù)集中,預(yù)測新的數(shù)據(jù)并不好。
上圖與最開始說的一樣,第一種是欠擬合,高偏差。第二種擬合較好。第三種加入了多個(gè)高階項(xiàng),過擬合,不能很好的泛化到新樣本。
矯正過擬合的方法:
1、減少特征數(shù)(手動(dòng)或采用相關(guān)模型自動(dòng)減少無用的特征)。
2、正則化。
二、代價(jià)函數(shù)
以下圖為例,右邊擬合的曲線增加了高階項(xiàng),使得模型過擬合,那么我們可以在代價(jià)函數(shù)中,構(gòu)建對高階項(xiàng)的懲罰,比如加上用一個(gè)很大的數(shù)乘以θ3和θ4的平方,那么為了使代價(jià)函數(shù)J(θ)很小,那么只能使得θ3和θ4都很小且趨近于0,那么擬合出來的模型就有變成類似有圖的二次項(xiàng)模型。
假設(shè)有多個(gè)特征,我們并不知道其中哪些特征要懲罰,則可以對所有特征進(jìn)行懲罰,如下圖
一般不對θo(即常數(shù)項(xiàng),X全為1)進(jìn)行懲罰,加入了正則化項(xiàng)的代價(jià)函數(shù)為:
λ為正則化參數(shù),可以控制代價(jià)函數(shù)前一項(xiàng)(為了更好地?cái)M合數(shù)據(jù))和正則化項(xiàng)(為了使θ參數(shù)盡可能小,從而使模型相對簡單,避免過擬合)的平衡。
經(jīng)過正則化處理的模型與原模型的可能對比如下圖所示:
如果選擇的正則化參數(shù)λ過大,那么為了使代價(jià)函數(shù)J(θ)盡可能的小,則會(huì)把所有的參數(shù)都最小化了,導(dǎo)致模型變成hθ(X)=θo,也就是成了一條直線(如上圖紅線所示),造成欠擬合。所以對于正則化,需要取一個(gè)合理的λ。
三、線性回歸的正則化
確定線性回歸的模型的參數(shù),有兩種方法:梯度下降和正規(guī)方程。
正則化線性回歸的代價(jià)函數(shù)為:
正則化線性回歸的代價(jià)函數(shù)為:
因?yàn)槲磳Ζ萶進(jìn)行正則化,所以使用梯度下降法令這個(gè)代價(jià)函數(shù)最小化時(shí)分為兩種情況;
對上面算法中j=1,2,...,n的式子進(jìn)行調(diào)整可得:
α很小,而m通常比較大,所以α*λ/m通常很小,可以發(fā)現(xiàn),每次都使θj減少了一個(gè)額外的θj。
利用正規(guī)方程來求解正則化線性回歸模型,方法如下所示:
圖中的矩陣尺寸為:(n+1)*(n+1)。
四、邏輯回歸的正則化
加入正則化項(xiàng)之后,邏輯回歸的代價(jià)函數(shù)為:
要最小化該代價(jià)函數(shù),通過求導(dǎo),得出梯度下降算法為:
注意:
1、雖然正則化的邏輯回歸中的梯度下降和正則化的線性回歸中的表達(dá)式看起來一樣,但由于兩者的hθ(X)不同,所以差別很大。
2、θo不參與其中的任何一個(gè)正則化。
微信公眾號(hào):BioLearner
定期更新,歡迎關(guān)注