機器學習 嶺回歸和 LASSO 回歸實現

2021-10-24 11:51:51 字數 2537 閱讀 9042

普通最小二乘法帶來的侷限性,導致許多時候都不能直接使用其進行線性回歸擬合。特別是以下兩種情況:

為了解決上述兩種情況**現的問題,嶺回歸(ridge regression)應運而生。嶺回歸可以被看作為一種改良後的最小二乘估計法,它通過向損失函式中新增l2l2

l2正則項(2-範數)有效防止模型出現過擬合,且以助於解決非滿秩條件下求逆困難的問題,從而提公升模型的解釋能力。即

對應的損失函式由:

f no

rmal

=∑i=

1n(y

i−wt

x)2f_=\sum_^(y_-w^tx)^2

fnorma

l​=i

=1∑n

​(yi

​−wt

x)2變為:

f ri

dge=

∑i=1

n(yi

−wtx

)2+λ

∑i=1

n(wi

)2f_=\sum_^(y_-w^tx)^2 + \lambda \sum_^(w_)^2

fridge

​=i=

1∑n​

(yi​

−wtx

)2+λ

i=1∑

n​(w

i​)2

我們可以把公式改寫為向量表示:

f

ridge=∥

y−xw

∥22+

λ∥w∥

22f_}=\|y-x w\|_^+\lambda\|w\|_^

fridge​=

∥y−x

w∥22

​+λ∥

w∥22

​ 公式中回歸係數w

ww的解析解為:

w ^r

idge

=(xt

x+λi

)−1x

ty\hat w_ = (x^tx + \lambda i)^ x^ty

w^ridg

e​=(

xtx+

λi)−

1xty

從公式的區別可以看出,通過給xtx

xtxxt

x增加乙個單位矩陣,從而使得矩陣變成滿秩,完善普通最小二乘法的不足。

sklearn.linear_model.ridge(alpha=1.0, fit_intercept=true, normalize=false, copy_x=true, max_iter=none, tol=0.001, solver='auto', random_state=none)

from sklearn.linear_model import ridge

ridge_model = ridge(fit_intercept=

false

)# 引數代表不增加截距項

ridge_model.fit(x, y)

ridge_model.coef_ # 列印模型引數

sklearn.linear_model.lasso(alpha=1.0, fit_intercept=true, normalize=false, precompute=false, copy_x=true, max_iter=1000, tol=0.0001, warm_start=false, positive=false, random_state=none, selection='cyclic')

"""

使用 lasso 回歸擬合併繪圖

"""from sklearn.linear_model import lasso

alphas = np.linspace(-2

,2,10

)lasso_coefs =

for a in alphas:

lasso = lasso(alpha=a, fit_intercept=

false

) lasso.fit(x, y)

plt.plot(alphas, lasso_coefs)

# 繪製不同 alpha 引數下的 w 擬合值

plt.scatter(np.linspace(0,

0,10)

, parameters[0]

)# 普通最小二乘法擬合的 w 值放入圖中

由圖可見,當 alpha 取值越大時,正則項主導收斂過程,各 ? 係數趨近於 0。當 alpha 很小時,各 ? 係數波動幅度變大。

機器學習 嶺回歸和LASSO回歸

1.用矩陣表示多元線性回歸 y bx a q b y bx t y bx 達到最小時的b值。也即是殘差平方和最小時。b bi 的值。可以證明b的最小二乘估計 xtx 1xty 其中 xtx 1為廣義逆。1.出現多重共線性2.當n 嶺回歸 ridge regression 先對資料做標準化 b k x...

機器學習 嶺回歸和Lasso回歸(4)

任何資料都存在雜訊和多重共線性 如何解決多重共線性 1.演算法角度 正則化 2.資料角度 最有效果 嶺回歸與lasso回歸的出現是為了解決線性回歸出現的過擬合 資料間高度線性相關 以及在通過正規方程方法求解 的過程 現的x轉置乘以x不可逆這兩類問題的,這兩種回歸均通過在損失函式中引入正則化項來達到目...

嶺回歸和lasso回歸

在多元線性回歸模型中估計回歸係數使用的是ols,但同時還也有異方差和多重共線性的影響。回歸中關於自變數的選擇大有門道,變數過多時可能會導致多重共線性問題造成回歸係數的不顯著,甚至造成ols估計的失效。嶺回歸和lasso回歸在ols回歸模型的損失函式上加上了不同的懲罰項,該懲罰項由回歸係數的函式構成,...