機器學習:什麼是欠擬合和過擬合

1. 什麼是欠擬合和過擬合

先看三張圖片,這三張圖片是線性迴歸模型 擬合的函數和訓練集的關係

  1. 第一張圖片擬合的函數和訓練集誤差較大,我們稱這種情況爲 欠擬合
  2. 第二張圖片擬合的函數和訓練集誤差較小,我們稱這種情況爲 合適擬合
  3. 第三張圖片擬合的函數完美的匹配訓練集數據,我們稱這種情況爲 過擬合

  

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

  

2. 如何解決欠擬合和過擬合問題

欠擬合問題,根本的原因是特徵維度過少,導致擬合的函數無法滿足訓練集,誤差較大。

欠擬合問題可以通過增加特徵維度來解決。

過擬合問題,根本的原因則是特徵維度過多,導致擬合的函數完美的經過訓練集,但是對新數據的預測結果則較差

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

  1. 減少特徵維度; 可以人工選擇保留的特徵,或者模型選擇算法
  2. 正則化; 保留所有的特徵,通過降低參數θ的值,來影響模型

3. 正則化

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

 

從圖中可以看出,解決這個過擬合問題可以通過消除特徵x3和x4的影響, 我們稱爲對參數的懲罰, 也就是使得參數θ3, θ4接近於0。

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

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

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

4. 線性迴歸使用正則化

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

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

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

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

1. 梯度下降算法(注意需要區分θ0和其它參數的更新等式)

2. 正規方程

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

係數λ 所乘的矩陣爲 (n+1)*(n+1)維

5. 邏輯迴歸使用正則化

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

邏輯迴歸的代價函數J(θ)表達式如下

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

 

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

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

 

“無意中發現了一個巨牛的人工智能教程,忍不住分享一下給大家。教程不僅是零基礎,通俗易懂,而且非常風趣幽默,像看小說一樣!覺得太牛了,所以分享給大家。點這裏可以跳轉到教程。”

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章