線性回歸——Lasso回歸和嶺回歸


線性回歸——最小二乘

線性回歸(linear regression),就是用線性函數 f(x)=wx+bf(x)=w⊤x+b 去擬合一組數據 D={(x1,y1),(x2,y2),...,(xn,yn)}D={(x1,y1),(x2,y2),...,(xn,yn)} 並使得損失 J=1nni=1(f(xi)yi)2J=1n∑i=1n(f(xi)−yi)2 最小。線性回歸的目標就是找到一組 (w,b)(w∗,b∗),使得損失 JJ 最小。

線性回歸的擬合函數(或 hypothesis)為:

cost function (mse) 為:

 

Lasso回歸和嶺回歸

Lasso 回歸和嶺回歸(ridge regression)都是在標准線性回歸的基礎上修改 cost function,即修改式(2),其它地方不變。

Lasso 的全稱為 least absolute shrinkage and selection operator,又譯最小絕對值收斂和選擇算子、套索算法。

Lasso 回歸對式(2)加入 L1 正則化,其 cost function 如下:

嶺回歸對式(2)加入 L2 正則化,其 cost function 如下:

Lasso回歸和嶺回歸的同和異:

  • 相同:
    • 都可以用來解決標准線性回歸的過擬合問題。
  • 不同:
    • lasso 可以用來做 feature selection,而 ridge 不行。或者說,lasso 更容易使得權重變為 0,而 ridge 更容易使得權重接近 0。
    • 從貝葉斯角度看,lasso(L1 正則)等價於參數 ww 的先驗概率分布滿足拉普拉斯分布,而 ridge(L2 正則)等價於參數 ww 的先驗概率分布滿足高斯分布。具體參考博客 從貝葉斯角度深入理解正則化 -- Zxdon 。

也許會有個疑問,線性回歸還會有過擬合問題?

加入 L1 或 L2 正則化,讓權值盡可能小,最后構造一個所有參數都比較小的模型。因為一般認為參數值小的模型比較簡單,能適應不同的數據集,也在一定程度上避免了過擬合現象。

可以設想一下對於一個線性回歸方程,若參數很大,那么只要數據偏移一點點,就會對結果造成很大的影響;但如果參數足夠小,數據偏移得多一點也不會對結果造成什幺影響,一種流行的說法是『抗擾動能力強』。具體參見博客 淺議過擬合現象(overfitting)以及正則化技術原理

為什么 lasso 更容易使部分權重變為 0 而 ridge 不行?

lasso 和 ridge regression 的目標都是 minw,bJminw,bJ,式(3)和(4)都是拉格朗日形式(with KKT條件),其中 λλ 為 KKT 乘子,我們也可以將 minw,bJminw,bJ 寫成如下形式:

  • lasso regression:
  • ridge regression:

式(5)和(6)可以理解為,在 w限制的取值范圍內,找一個點 w^w^ 使得 mean square error 最小,tt 可以理解為正則化的力度,式(5)和(6)中的 tt 越小,就意味着式(3)和(4)中 λλ 越大,正則化的力度越大 。

以 xR2x∈R2 為例,式(5)中對 ww 的限制空間是方形,而式(6)中對 ww 的限制空間是圓形。因為 lasso 對 ww 的限制空間是有棱角的,因此 

的解更容易切在 w的某一個維為 0 的點。如下圖所示:


Fig.1[1] Lasso (left) and ridge (right) regression.

Fig. 1 中的坐標系表示 ww 的兩維,一圈又一圈的橢圓表示函數

的等高線,橢圓越往外,JJ 的值越大,ww∗ 表示使得損失 JJ 取得全局最優的值。使用 Gradient descent,也就是讓 ww 向着 ww∗ 的位置走。如果沒有 L1 或者 L2 正則化約束,ww∗ 是可以被取到的。但是,由於有了約束 

 

 

w 的取值只能限制在 Fig. 1 所示的灰色方形和圓形區域。當然調整 t 的值,我們能夠擴大這兩個區域。

等高線從低到高第一次和 w 的取值范圍相切的點,即是 lasso 和 ridge 回歸想要找的權重 w^。

lasso 限制了 w 的取值范圍為有棱角的方形,而 ridge 限制了 w 的取值范圍為圓形,等高線和方形區域的切點更有可能在坐標軸上,而等高線和圓形區域的切點在坐標軸上的概率很小。這就是為什么 lasso(L1 正則化)更容易使得部分權重取 0,使權重變稀疏;而 ridge(L2 正則化)只能使權重接近 0,很少等於 0。

正是由於 lasso 容易使得部分權重取 0,所以可以用其做 feature selection,lasso 的名字就指出了它是一個 selection operator。權重為 0 的 feature 對回歸問題沒有貢獻,直接去掉權重為 0 的 feature,模型的輸出值不變。

對於 ridge regression 進行 feature selection,你說它完全不可以吧也不是,weight 趨近於 0 的 feature 不要了不也可以,但是對模型的效果還是有損傷的,這個前提還得是 feature 進行了歸一化。

如果你的模型中有很多變量對模型都有些許影響,那么用Ridge;當數據量特別大的時候更傾向於用Ridge,因為Ridge計算起來更快。

 








免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM