天天看點

機器學習-回歸模型-欠拟合和過拟合

先看三張圖檔,這三張圖檔是線性回歸模型 拟合的函數和訓練集的關系

第一張圖檔拟合的函數和訓練集誤差較大,我們稱這種情況為 <code>欠拟合</code>

第二張圖檔拟合的函數和訓練集誤差較小,我們稱這種情況為 <code>合适拟合</code>

第三張圖檔拟合的函數完美的比對訓練集資料,我們稱這種情況為 <code>過拟合</code>

機器學習-回歸模型-欠拟合和過拟合

類似的,對于邏輯回歸同樣也存在欠拟合和過拟合問題,如下三張圖

機器學習-回歸模型-欠拟合和過拟合

欠拟合問題,根本的原因是特征次元過少,導緻拟合的函數無法滿足訓練集,誤差較大。

欠拟合問題可以通過增加特征次元來解決

過拟合問題,根本的原因則是特征次元過多,導緻拟合的函數完美的經過訓練集,但是對新資料的預測結果則較差。

解決過拟合問題,則有2個途徑

減少特征次元; 可以人工選擇保留的特征,或者模型選擇算法

正則化; 保留所有的特征,通過降低參數θ的值,來影響模型

回到前面<code>過拟合</code>例子, h(x) = θ0 + θ1x1 + θ2x2 + θ3x3 + θ4x4

機器學習-回歸模型-欠拟合和過拟合

從圖中可以看出,解決這個過拟合問題可以通過消除特征x3和x4的影響, 我們稱為對參數的<code>懲罰</code>, 也就是使得參數θ3, θ4接近于0。

最簡單的方法是對代價函數進行改造,例如

機器學習-回歸模型-欠拟合和過拟合

這樣在求解最小化代價函數的時候使得參數θ3, θ4接近于0。

<code>正則化</code>其實就是通過對參數θ的懲罰來影響整個模型

前面幾篇文章中,線性回歸的<code>代價函數</code>J(θ)表達式如下

機器學習-回歸模型-欠拟合和過拟合

正則化後,代價函數J(θ)表達式如下,注意j從1開始

機器學習-回歸模型-欠拟合和過拟合

注意λ值不能設定過大,否則會導緻求出的參數除了θ0,其它θ1,θ2 ... θn值約等于0,導緻預測函數h(x)出現極大偏差

我們的目标依然是求J(θ)最小值,我們還是用<code>梯度下降算法</code>和<code>正規方程</code>求解最小化J(θ)

機器學習-回歸模型-欠拟合和過拟合
機器學習-回歸模型-欠拟合和過拟合

對于正規方程來,需要修改等式如下

機器學習-回歸模型-欠拟合和過拟合

系數λ 所乘的矩陣為 (n+1)*(n+1)維

和線性回歸模型類型,邏輯回歸也可以通過正則化來解決過拟合問題。

邏輯回歸的<code>代價函數</code>J(θ)表達式如下

機器學習-回歸模型-欠拟合和過拟合

正則化邏輯回歸的代價函數,是在等式後加上一項,注意j從1開始

機器學習-回歸模型-欠拟合和過拟合

同樣的用<code>梯度下降算法</code>求解最小化J(θ),也需要做改變

機器學習-回歸模型-欠拟合和過拟合
機器學習-回歸模型-欠拟合和過拟合

不同的是邏輯回歸模型中的預測函數 h(x)和線性回歸不同

繼續閱讀