AI算法14-套索回歸算法Lasso Regression | LR

套索回歸算法概述

套索回歸算法簡介

在統計學和機器學習中,套索回歸是一種同時進行特征選擇和正則化(數學)的回歸分析方法,旨在增強統計模型的預測準確性和可解釋性,

正則化是一種回歸的形式,它將系數估計(coefficient estimate)朝零的方向進行約束、調整或縮小。也就是說,正則化可以在學習過程中降低模型復雜度和不穩定程度,從而避免過擬合的危險。一個簡單的線性回歸關系如下式。其中 Y 代表學習關系,β 代表對不同變量或預測因子 X 的系數估計。

Y ≈ β_0 + β_1X_1 + β_2X_2 + …+ β_pX_p

擬合過程涉及損失函數,稱為殘差平方和(RSS)。系數選擇要使得它們能最小化損失函數。

這個式子可以根據你的訓練數據調整系數。但如果訓練數據中存在噪聲,則估計的系數就不能很好地泛化到未來數據中。這正是正則化要解決的問題,它能將學習后的參數估計朝零縮小調整。

套索和嶺回歸都是正則化的方法,我們將對比著描述,其中套索需要最小化下圖的函數:

很明顯,這種變體只有在懲罰高系數時才有別于嶺回歸。它使用 |β_j|(模數)代替 β 的平方作為懲罰項。在統計學中,這被稱為 L1 范數。讓我們換個角度看看上述方法。嶺回歸可以被認為是求解一個方程,其中系數的平方和小于等于 s。而 套索 可以看作系數的模數之和小于等于 s 的方程。其中,s 是一個隨收縮因子 λ 變化的常數。這些方程也被稱為約束函數。

假定在給定的問題中有 2 個參數。那么根據上述公式,嶺回歸的表達式為 β12 + β22 ≤ s。這意味著,在由 β12 + β22 ≤ s 給出的圓的所有點當中,嶺回歸系數有著最小的 RSS(損失函數)。同樣地,對 套索 而言,方程變為 |β1|+|β2|≤ s。這意味著在由 |β1|+|β2|≤ s 給出的菱形當中,套索 系數有著最小的 RSS(損失函數)。

下圖描述了這些方程。

上圖的綠色區域代表約束函數域:左側代表 套索,右側代表嶺回歸。其中紅色橢圓是 RSS 的等值線,即橢圓上的點有著相同的 RSS 值。對于一個非常大的 s 值,綠色區域將會包含橢圓的中心,使得兩種回歸方法的系數估計等于最小二乘估計。但是,上圖的結果并不是這樣。在上圖中,套索 和嶺回歸系數估計是由橢圓和約束函數域的第一個交點給出的。因為嶺回歸的約束函數域沒有尖角,所以這個交點一般不會產生在一個坐標軸上,也就是說嶺回歸的系數估計全都是非零的。然而,套索 約束函數域在每個軸上都有尖角,因此橢圓經常和約束函數域相交。發生這種情況時,其中一個系數就會等于 0。在高維度時(參數遠大于 2),許多系數估計值可能同時為 0。

這說明了嶺回歸的一個明顯缺點:模型的可解釋性。它將把不重要的預測因子的系數縮小到趨近于 0,但永不達到 0。也就是說,最終的模型會包含所有的預測因子。但是,在 套索 中,如果將調整因子 λ 調整得足夠大,L1 范數懲罰可以迫使一些系數估計值完全等于 0。因此,套索 可以進行變量選擇,產生稀疏模型。

套索回歸發展歷史

套索是由斯坦福大學統計學教授Robert Tibshirani于1996年基于Leo Breiman的非負參數推斷(Nonnegative Garrote, NNG)提出。后者于其1995年的論文中發表。Robert Tibshirani最初使用套索來提高預測的準確性與回歸模型的可解釋性,他修改了模型擬合的過程,在協變量中只選擇一個子集應用到最終模型中,而非用上全部協變量。

在隨后的研究中不同的套索變體被創造出來。幾乎所有這些變體都集中于尊重或利用協變量之間的不同類型的依賴性。2005年,Hui Zou和Trevor Hastie提出通過彈性網(elastic net)來實現正則化和變量選擇。當預測變量的數量大于樣本大小時,彈性網絡正則化會增加額外的嶺回歸類懲罰,從而提高性能,允許方法一起選擇強相關變量,并提高整體預測精度。

2006年Ming Yuan和Yi Lin提對變量進行組合,即group 套索,允許選擇相關協變量組作為單個單元,主要針對某些情況下變量不單個出現而僅與其他變量一同出現。

2009年,Arnau Tibau Puig等人對group 套索進一步擴展,以在各個組(稀疏組套索)中執行變量選擇并允許組之間的重疊(重疊組套索)。

套索結合了上述的兩種方法,它通過強制讓回歸系數絕對值之和小于某固定值,即強制一些回歸系數變為0,有效地選擇了不包括這些回歸系數對應的協變量的更簡單的模型。這種方法和嶺回歸類似,在嶺回歸中,回歸系數平方和被強制小于某定值,不同點在于嶺回歸只改變系數的值,而不把任何值設為0。

套索回歸主要事件

年份

事件

相關論文/Reference

1995

Leo Breiman提出非負參數推斷

Breiman, L.(1995).?Better Subset Regression Using the Nonnegative Garrote. Technometrics.?37 (4): 373–384.

1996

斯坦福大學統計學教授Robert Tibshirani1996年基于Leo Breiman的非負參數推斷(Nonnegative Garrote, NNG)提出套索

Tibshirani, R. (1996). Regression Shrinkage and Selection via the 套索.?Journal of the Royal Statistical Society. Series B (methodological).?58 (1): 267–88.

2005

Hui ZouTrevor Hastie提出通過彈性網(elastic net)來實現正則化和變量選擇

Zou, H.; Hastie, T. (2005). Regularization and Variable Selection via the Elastic Net.?Journal of the Royal Statistical Society. Series B (statistical Methodology).?67 (2): 301–20.

2006

Ming YuanYi Lin提對變量進行組合,即group 套索

Yuan, M.; Lin, Y. (2006). Model Selection and Estimation in Regression with Grouped Variables.?Journal of the Royal Statistical Society. Series B (statistical Methodology).?68 (1): 49–67.

2009

Arnau Tibau Puig等人對group 套索進一步擴展,以在各個組(稀疏組套索)中執行變量選擇并允許組之間的重疊(重疊組套索)

Puig, A. T., Wiesel, A.; Hero, A. O. (2009). A Multidimensional Shrinkage-Thresholding Operator. Proceedings of the 15th workshop on Statistical Signal Processing, SSP’09, IEEE, pp. 113–116.

套索回歸算法的原理及作用

套索回歸算法的原理

套索算法的核心思想是在最小二乘估計的基礎上,增加一個關于回歸系數的L1正則化項。這個正則化項的作用是對回歸系數進行懲罰,使得部分系數被壓縮至零,從而實現特征選擇。

具體來說,套索算法的優化目標可以表示為:

β_hat = argmin { ∑(y_i - β_0 - ∑x_ij * β_j)^2 + λ∑|β_j| }

其中,y_i表示觀測值,x_ij表示特征值,β_0表示截距項,β_j表示回歸系數,λ是正則化參數,用于控制正則化項的權重。

這個優化目標包含兩部分:前半部分是最小二乘估計的損失函數,用于衡量模型擬合數據的能力;后半部分是L1正則化項,用于對回歸系數進行懲罰。λ越大,懲罰力度越強,越多的回歸系數將被壓縮至零。

套索回歸算法的作用

在處理具有大量特征的數據集時,我們常常面臨兩個主要的挑戰:

  1. 特征之間可能存在多重共線性,這會導致模型參數估計不穩定甚至無法計算;
  2. 并非所有特征都對預測結果有顯著影響,一些無關或冗余的特征可能會干擾模型的預測性能。傳統的最小二乘法(Ordinary Least Squares, OLS)回歸在這樣的高維數據上往往會得到過擬合的模型,即模型在訓練集上表現良好但在新數據上泛化能力弱。

為了解決這些問題,統計學家和發展機器學習算法的研究人員提出了一系列的正則化技術,其中套索回歸(套索 Regression)就是一種被廣泛應用的方法。套索回歸通過在回歸模型中加入一個調節復雜度的懲罰項來克服上述問題。這個懲罰項是模型系數絕對值之和的λ倍,也就是所謂的L1范數,其中λ是一個非負的調節參數。

引入L1范數作為懲罰項有幾個關鍵的優勢:

  1. 稀疏性:L1范數有助于模型產生稀疏解,即推動某些系數減小至零。這一性質特別有用,因為它不僅降低了模型的復雜性,還實現了特征選擇的目的,即自動地識別出對響應變量有重要影響的變量。
  2. 可解釋性:通過減少特征的數量,模型變得更加容易解釋。這對于高維數據尤其重要,因為在高維情況下,找出重要的特征并理解每個特征如何影響預測結果是非常關鍵的。
  3. 計算效率:盡管套索回歸是一個復雜的優化問題,存在多種算法可以高效地求解,如坐標下降法、最小角回歸法等。

套索回歸算法的實現過程

  1. 數據準備:首先,收集并整理好用于回歸分析的數據集,包括觀測值、特征值等。
  2. 參數設置:選擇合適的正則化參數λ。這通常需要通過交叉驗證等方法來確定最優值。
  3. 優化求解:利用優化算法(如坐標下降法、最小角回歸等)求解上述優化目標,得到回歸系數的估計值。
  4. 特征選擇:根據回歸系數的估計值,將絕對值較小的系數置為零,從而實現特征選擇。這些被置為零的特征在后續建模中將不再考慮。
  5. 模型評估:利用測試數據集對得到的模型進行評估,包括擬合優度、預測誤差等指標。根據評估結果調整模型參數,以達到更好的性能。

套索回歸算法的代碼實現

from sklearn.linear_model import Lassolamb = 0.025lasso_reg = Lasso(alpha=lamb)lasso_reg.fit(X_poly_d, y)print(lasso_reg.intercept_, lasso_reg.coef_)print(L_theta_new(intercept=lasso_reg.intercept_,coef=lasso_reg.coef_.T,X=X_poly_d,y=y,lamb=lamb))X_plot = np.linspace(-3, 2, 1000).reshape(-1, 1)X_plot_poly = poly_features_d.fit_transform(X_plot)h = np.dot(X_plot_poly, lasso_reg.coef_.T) + lasso_reg.intercept_plt.plot(X_plot, h, 'r-')plt.plot(X, y, 'b.')plt.show()

套索回歸算法的應用場景

套索回歸可以用于特征選擇、解決多重共線性問題以及解釋模型結果等應用場景。例如,在醫療診斷領域,我們可以使用套索回歸來識別哪些疾病風險因素對預測結果具有最大的影響。在金融領域,我們可以使用套索回歸來尋找哪些因素對股票價格變化有最大的影響。

此外,套索回歸也可以與其他算法結合使用,例如隨機森林、支持向量機等。通過結合使用,我們可以充分利用套索回歸的特征選擇功能,同時獲得其他算法的優點,從而提高模型的性能。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/44654.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/44654.shtml
英文地址,請注明出處:http://en.pswp.cn/web/44654.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

并發編程-06之Semaphore

一 Semaphore入門 1.1 什么是Semaphore Semaphore,俗稱信號量,它是操作系統中PV操作的原語在java的實現,它也是基于AbstractQueuedSynchronizer實現的。 Semaphore的功能非常強大,大小為1的信號量就類似于互斥鎖,通過同…

centos部署jar包

第一步: 將IDEA中的項目打包為jar,將這個jar文件放到centos服務器上的目錄里,我在opt新建api目錄,將jar文件放入,如下圖: 第二步: 將需要讀取的配置文件也放入此目錄(其他目錄也可以,和腳本中…

【筆記】記一次讀寫分離之shardingsphere.datasource導致數據源為空錯誤

錯誤: *************************** APPLICATION FAILED TO START *************************** Description: Failed to configure a DataSource: url attribute is not specified and no embedded datasource could be configured. Reason: Failed to determin…

搭建RAG系統就這么簡單:LangChain|RAG是什么?

RAG是什么 “RAG”(Retrieval-Augmented Generation)是一種結合了檢索(Retrieval)和生成(Generation)的人工智能技術,它在大模型中被需要的原因包括: 知識豐富性: 大模…

探索數據結構與算法的奇妙世界 —— Github開源項目推薦《Hello 算法》

在浩瀚的編程與計算機科學領域中,數據結構與算法無疑是每位開發者攀登技術高峰的必經之路。然而,對于初學者而言,這條路往往布滿了荊棘與挑戰。幸運的是,今天我要向大家推薦一個令人振奮的項目——《Hello Algo》,它正…

ubuntu使用kubeadm搭建k8s集群

一、卸載k8s kubeadm reset -f modprobe -r ipip lsmod rm -rf ~/.kube/# 自己選擇性刪除 坑點哦 rm -rf /etc/kubernetes/ rm -rf /etc/systemd/system/kubelet.service.d rm -rf /etc/systemd/system/kubelet.service rm -rf /usr/bin/kube* rm -rf /etc/cni rm -rf /opt/cn…

C# Winform 自定義事件實戰

在C#的WinForms中,自定義事件是一種強大的工具,它允許你創建自己的事件,從而在特定條件下通知訂閱者。自定義事件通常用于封裝業務邏輯,使代碼更加模塊化和易于維護。下面我將通過一個實戰例子來展示如何在WinForms中創建和使用自…

多線程編程中的條件變量及其優化

本套課在線學習視頻(網盤地址,保存到網盤即可免費觀看): 鏈接:https://pan.quark.cn/s/7220b198cf00 在多線程編程中,條件變量是一種用于線程間通信和同步的機制。通過使用條件變量,可以有效地…

Prometheus + alermanager + webhook-dingtalk 告警

添加釘釘機器人 1. 部署 alermanager 1.1 下載軟件包 wget https://github.com/prometheus/alertmanager/releases/download/v0.26.0/alertmanager-0.26.0.linux-amd64.tar.gz 網址 :Releases prometheus/alertmanager (github.com) 1.2 解壓軟件包 mkdir -pv …

醫日健集團技術力量體現測試的背后

醫日健集團覆蓋式更新 科技日新月異的時代,醫日健集團始終走在行業的前列。近日,醫日健集團外勤技術人員全面對市場點位投放的數智藥房進行了新系統升級和機器測試,這是醫日健對于科技創新的最新嘗試。 以客戶體驗為核心優化新體驗 醫日健集團…

NCNN源碼學習(1):Mat詳解

前言:最原始的發行版本代碼比較簡潔,我們從2017年ncnn第一次開源的版本閱讀mat的源碼。閱讀源碼味如嚼蠟,下面就開始吧! 目錄 構造函數 內存分配 數據成員 申請和釋放內存 引用計數 輔助函數 填充函數fill 參考 構造函數 ncnn提供了8種構造函數的方式。 // emptyM…

Js 前置,后置補零的原生方法與補字符串 padStart及padEnd

在工作中,遇到了需要將不滿八位的一個字符串進行后補0的操作,所以就在網上學習了關于js原生補充字符串的方法,然后用這篇博客記錄下來。 目錄 前置補充字符串 String.prototype.padStart() 后置補充字符串String.prototype.padEnd() 前置補…

將獨熱碼應用到神經網絡中

引言 接上回,本文繼續說如何用TensorFlow將獨熱編碼應用到一個簡單的神經網絡中,以實現從一段隨機文本到另一段隨機文本的轉換。 步驟一:導入庫 import tensorflow as tf import numpy as np import random import string步驟二&#xff1…

【超音速 專利 CN117710683A】基于分類模型的輕量級工業圖像關鍵點檢測方法

申請號CN202311601629.7公開號(公開)CN117710683A申請日2023.11.27申請人(公開)超音速人工智能科技股份有限公司發明人(公開)張俊峰(總); 楊培文(總); 沈俊羽; 張小村 技術領域 本發明涉及圖像關鍵點檢測…

數據庫MySQL下載安裝

MySQL下載安裝地址如下: MySQL :: Download MySQL Community Server 1、下載界面 2、點擊下載 3、解壓記住目錄 4、配置my.ini文件 未完..

C語言課程回顧:九、C語言之預處理命令

9 預處理命令 9 預處理命令9.1 概述9.2 宏定義9.2.1 無參宏定義9.2.2 帶參宏定義 9.3 文件包含9.4 條件編譯9.5 本章小結9.6 擴展 10種軟件濾波方法的示例程序1、限副濾波2、中位值濾波法3、算術平均濾波法4、遞推平均濾波法(又稱滑動平均濾波法)5、中位…

Vue.js學習筆記(五)抽獎組件封裝——轉盤抽獎

基于VUE2轉盤組件的開發 文章目錄 基于VUE2轉盤組件的開發前言一、開發步驟1.組件布局2.布局樣式3.數據準備 二、最后效果總結 前言 因為之前的轉盤功能是圖片做的,每次活動更新都要重做UI和前端,為了解決這一問題進行動態配置轉盤組件開發,…

【jvm】字符串常量池問題

目錄 一、基本概念1.1 說明1.2 特點 二、存放位置2.1 JDK1.6及以前2.2 JDK1.72.3 JDK1.8及以后 三、工作原理3.1 創建字符串常量3.2 使用new關鍵字創建字符串 四、intern()方法4.1 作用 五、優點六、字節碼分析6.1 示例16.1.1 代碼示例6.1.2 字節碼6.1.3 解析 6.2 示例26.2.1 代…

STM32智能倉儲管理系統教程

目錄 引言環境準備晶智能倉儲管理系統基礎代碼實現:實現智能倉儲管理系統 4.1 數據采集模塊 4.2 數據處理與決策模塊 4.3 通信與網絡系統實現 4.4 用戶界面與數據可視化應用場景:倉儲管理與優化問題解決方案與優化收尾與總結 1. 引言 智能倉儲管理系統…

7 月12日學習打卡--棧和隊列的相互轉換

hello大家好呀,本博客目的在于記錄暑假學習打卡,后續會整理成一個專欄,主要打算在暑假學習完數據結構,因此會發一些相關的數據結構實現的博客和一些刷的題,個人學習使用,也希望大家多多支持,有不…