首頁  >  文章  >  後端開發  >  Python中的Lasso迴歸實例

Python中的Lasso迴歸實例

WBOY
WBOY原創
2023-06-10 20:52:551829瀏覽

Lasso迴歸是一種流行應用於機器學習的線性迴歸方法,目的是透過忽略不相關的特徵變數來尋找最佳擬合模型。本文將介紹如何在Python中實作Lasso迴歸,並提供一個實際的資料集進行示範。

Lasso迴歸簡介

Lasso迴歸是一種透過在目標函數中加入懲罰項來解決普通最小平方法問題的方法。此懲罰項利用L1正規化(也稱為Lasso懲罰)來實現,其形式如下所示:

$J( eta)= rac{1}{2n}sum_{i=1}^ {n}(y_i-sum_{j=1}^{p}X_{ij} eta_j)^2 lpha sum_{j=1}^{p}| eta_j|$

#其中, $y$是反應變量,$X$是自變量矩陣,$ eta$是模型係數,$n$是樣本數,$p$是特徵數,$ lpha$是懲罰參數。 Lasso迴歸中難解的部分在於懲罰項的非凸最佳化問題。

實現Lasso迴歸的一種方法是透過座標下降(CD)演算法來求解。基本想法是在每次迭代中,只改變一個係數。這樣,CD演算法巧妙地繞過了懲罰項的非凸最佳化問題。

Python Lasso回歸實作

Python提供了許多機器學習函式庫,如Scikit-learn,能夠輕鬆實現Lasso迴歸。

首先,導入所需的函式庫如下:

import numpy as np
import pandas as pd
from sklearn.linear_model import LassoCV
from sklearn.datasets import load_boston
from sklearn.preprocessing import StandardScaler

接下來,我們載入Boston房價資料集並進行標準化處理:

boston = load_boston()
X = boston.data
y = boston.target
X = StandardScaler().fit_transform(X)

然後,我們用Scikit-learn中的LassoCV實現Lasso回歸。此模型自動進行交叉驗證並選擇最優的$ lpha$值。

lasso_reg = LassoCV(alphas=np.logspace(-3, 3, 100), cv=5, max_iter=100000)
lasso_reg.fit(X, y)

最後,我們輸出所得到的最優$ lpha$值與模型係數:

print('Best alpha:', lasso_reg.alpha_)
print('Model coefficients:', lasso_reg.coef_)

完整程式碼範例:

import numpy as np
import pandas as pd
from sklearn.linear_model import LassoCV
from sklearn.datasets import load_boston
from sklearn.preprocessing import StandardScaler

boston = load_boston()
X = boston.data
y = boston.target
X = StandardScaler().fit_transform(X)

lasso_reg = LassoCV(alphas=np.logspace(-3, 3, 100), cv=5, max_iter=100000)
lasso_reg.fit(X, y)

print('Best alpha:', lasso_reg.alpha_)
print('Model coefficients:', lasso_reg.coef_)

輸出結果如下:

Best alpha: 0.10000000000000002
Model coefficients: [-0.89521162  1.08556604  0.14359222  0.68736347 -2.04113155  2.67946138
  0.01939491 -3.08179223  2.63754058 -2.05806301 -2.05202597  0.89812875
 -3.73066641]

這表明,透過Lasso回歸,我們可以確定對Boston房價預測的最佳模型,並提取與反應變數最相關的特徵。

結論

本文介紹如何在Python中實作Lasso迴歸,並透過一個實際的資料集示範了該方法的應用。 Lasso迴歸是一種非常有用的線性迴歸技術,特別適合處理高維度資料。在實際問題中,可以透過交叉驗證和標準化等技術,優化模型表現,並提取最相關的特徵。

以上是Python中的Lasso迴歸實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn