搜尋意圖: 如果你在找「Lasso 迴歸(L1 正則化迴歸) 是什麼」或「Lasso 迴歸(L1 正則化迴歸) 和相近概念差在哪」,先看這頁的短定義、完整說明與延伸比較。
TL;DR: 一種在線性迴歸損失函數中加入 L1 懲罰項的迴歸方法,可自動將不重要特徵係數壓縮至零,實現特徵選取。
實用情境: 適合用在閱讀 AI 文章、產品文件或和同事討論時,先用一頁快速對齊概念。
下一步: 先讀完定義,再往下看延伸比較與對應工具,把概念轉成實際應用。
一種在線性迴歸損失函數中加入 L1 懲罰項的迴歸方法,可自動將不重要特徵係數壓縮至零,實現特徵選取。
Lasso 迴歸的背景與動機
Lasso 迴歸由 Robert Tibshirani 於 1996 年提出,全名為 Least Absolute Shrinkage and Selection Operator。在傳統線性迴歸中,模型透過最小化殘差平方和(RSS)來估計係數,但當特徵維度高或特徵間存在高度相關時,模型容易過擬合,泛化能力下降。Lasso 透過引入 L1 正則化懲罰項解決這個問題,其目標函數為:
目標 = RSS + λ × Σ|βj|
其中 λ(lambda)為超參數,控制懲罰強度;βj 為各特徵的係數。
運作原理:為什麼 L1 能產生稀疏解
L1 懲罰項的幾何特性是 Lasso 能夠產生稀疏係數的關鍵。與 Ridge 迴歸(L2 懲罰)的圓形可行域不同,L1 懲罰項的可行域形狀為菱形(在高維空間為超正交體),其頂點位於座標軸上。當損失函數的等高線與 L1 可行域相切時,切點極有可能落在菱形的頂角(即某些係數為零的點),這就解釋了 Lasso 為何能使部分特徵係數精確歸零,從而實現稀疏表示與特徵選取。
Lasso 與 Ridge 迴歸(L2)的比較
Lasso(L1)與 Ridge(L2)同為常用的正則化迴歸方法,兩者最大的差異在於:
- 特徵選取:Lasso 能將部分係數壓縮至恰好為零(稀疏解),自動進行特徵選取;Ridge 只能將係數縮小但不能使其為零。
- 適用情境:當真實模型僅有少數特徵相關時,Lasso 更合適;當所有特徵均對目標有貢獻時,Ridge 較佳。
- 高相關特徵:Lasso 在特徵高度相關(多重共線性)時可能隨機選取其中一個特徵並忽略其他;Ridge 則會對相關特徵賦予相近係數。Elastic Net 結合兩者優點,同時加入 L1 和 L2 懲罰,兼顧稀疏性與群組效果。
超參數 λ 的選擇
λ 值的選擇對 Lasso 模型性能至關重要:
- λ = 0:退化為普通線性迴歸
- λ 越大:懲罰越強,更多係數被壓縮至零,模型越簡單
- λ 過大:欠擬合,丟失有用特徵
實務上通常使用交叉驗證(Cross-Validation)來選擇最佳 λ 值,例如 sklearn 中的 LassoCV 自動以 k-fold CV 尋找最優 λ。
應用場景
- 基因組學與生物醫學:基因特徵數量龐大(可能達數萬個),但真正與疾病相關的基因可能僅數十個,Lasso 可有效篩選出關鍵基因。
- 金融信用評估:在眾多財務指標中自動找出最具預測力的變數。
- 高維特徵選取前置步驟:作為特徵選取的初步篩選,再將保留特徵輸入更複雜的模型。
- 文字探勘:在詞袋模型中,詞彙空間可能達數萬維,Lasso 可篩選出真正相關的詞彙。
局限性
- 當特徵數 p 大於樣本數 n 時,Lasso 最多只能選取 n 個特徵。
- 對特徵縮放敏感,使用前 MUST 標準化(StandardScaler)。
- 多重共線性情況下特徵選取結果不穩定,可能在多次訓練中選取不同的相關特徵。
求解方法
由於 L1 範數在零點不可微分,Lasso 無法像普通最小平方法那樣直接求解析解。常用求解方法包括座標下降法(Coordinate Descent)與最小角迴歸(LARS)。scikit-learn 預設使用座標下降法,效率高且適用於大規模資料。
Elastic Net:結合 Lasso 與 Ridge 的折衷
Elastic Net 同時加入 L1 和 L2 懲罰項,目標函數為: 目標 = RSS + λ₁ × Σ|βj| + λ₂ × Σβj²
Elastic Net 的優點在於:在特徵高度相關時能夠群組選取相關特徵(L2 項的作用),同時保留 Lasso 的稀疏性(L1 項的作用)。當特徵數量遠大於樣本數且存在多重共線性時,Elastic Net 通常比單純使用 Lasso 或 Ridge 更穩健。實務建議:若不確定使用 L1 或 L2,可先從 Elastic Net 開始,再根據任務需求調整兩個正則化項的比例。
實際使用注意事項
使用 Lasso 時有幾個常見陷阱需要避免:首先,若特徵間存在多重共線性,Lasso 的特徵選取結果在不同資料子集上可能不穩定,需多次驗證;其次,Lasso 的稀疏性是優勢,但若業務上所有特徵都有理論根據,過度剔除特徵可能引入偏差;第三,當樣本量相對特徵數偏少時,Lasso 的係數估計方差可能較大,解釋時需謹慎。建議在最終模型解釋前,搭配 Bootstrap 重採樣評估係數穩定性。
常見問題
Lasso 迴歸與 Ridge 迴歸最主要的差異是什麼?
Lasso 使用 L1 懲罰項(係數絕對值之和),能將部分特徵係數壓縮至恰好為零,因此同時具有特徵選取的功能;Ridge 使用 L2 懲罰項(係數平方和),只能縮小係數但無法使其為零,適合所有特徵均有貢獻的情境。Lasso 適合高維稀疏問題,Ridge 適合特徵間存在多重共線性的情境。
使用 Lasso 迴歸前需要對資料做哪些前處理?
Lasso 迴歸對特徵的量綱(scale)非常敏感,因為懲罰項是對係數大小的直接懲罰。若各特徵的數值範圍差異很大,量綱大的特徵係數天然就較小,而量綱小的特徵係數較大,導致懲罰不公平。因此在使用 Lasso 前 MUST 對所有特徵進行標準化(零均值、單位方差),或至少做最大最小值縮放,確保每個特徵在相同的數值範圍內。
如何選擇 Lasso 的 λ 值?
λ 是控制正則化強度的超參數,通常透過交叉驗證(Cross-Validation)選擇。實務上可先用對數尺度搜尋 λ 的候選值範圍(如 0.001 到 10),再以 k-fold CV(通常 k=5 或 10)評估每個候選 λ 對應的驗證誤差,選取驗證誤差最低的 λ。scikit-learn 的 LassoCV 封裝了這個流程,可自動化選取最佳 λ,省去手動調參的成本。