Lasso的特性及简介: 
在最小二乘中,常把岭回归与Lasso来进行比较,它们都能对数据防止过拟合,这是为什么呢?
 当特征之间存在高度相关关系的时候,假设有两个特征高度负相关,那么不带正则化的回归问题可能会赋予二者近似相等的很大权重,这样加权起来的结果仍然较小,但是由于权重很大,就导致了过拟合问题。Ridge Regression会倾向于在相关特征之间均匀分布权重,Lasso则倾向于从相关特征中选取出一个,其余特征权值衰减为零。在岭回归中,回归系数平方和被强制小于某定值,岭回归只改变系数的值,而不把任何值设为0。
 Lasso算法是一种同时进行特征选择和正则化(数学)的回归分析方法。

由于Lasso采用的是L1正则化,所以不能像普通最小二乘那样采用梯度下降等方法去解决,这里推荐了三种解决方法,分别是次梯度法、迭代加权最小二乘、ADMM。

次梯度(坐标下降法)

当函数是可导的时候,根据泰勒展开,有: f ( x ) = f ( x 0 ) + ▽ f ( x 0 ) ( x − x 0 ) f(x)=f(x_{0})+\bigtriangledown f(x_{0})(x-x_{0}) f(x)=f(x0​)+▽f(x0​)(x−x0​)
但是当函数在某一点的左导数不等于右导数时该点梯度不存在,存在次梯度,有: f ( x ) ≥ f ( x 0 ) + ▽ f ( x 0 ) ( x − x 0 ) f(x)\geq f(x_{0})+\bigtriangledown f(x_{0})(x-x_{0}) f(x)≥f(x0​)+▽f(x0​)(x−x0​)

在网上总结的关于次梯度的几个点:

  1. 一阶逼近时可导的点的支撑超平面只有一个即这个点的切面,切面对应的梯度称为这个点的梯度;而不可导的点可能有很多支撑超平面,每个支撑超平面对应一个梯度,这些梯度的集合为这个点的次梯度。
  2. 用次梯度对原函数做出的一阶展开估计总是比真实值要小
  3. 函数 f ( x ) f(x) f(x)在 x x x处的次梯度可以构成一个集合
  4. 经典梯度下降算法实际上是利用负梯度总是指向最小值点这一性质,但是负次梯度方向不一定是下降方向,但是,这个方向可以让你离最小值点更近

L1正则化采用的是绝对值函数 ∣ x ∣ |x| ∣x∣,它在 x = 0 x=0 x=0处是不可导的。通常采用坐标下降法来求解Lasso
为了简便,以下公式针对于单样本。设某个样本 x x x有 K K K个属性,有损失函数: L ( w ) = 1 2 ∥ y − x w ∥ 2 2 + γ ∥ w ∥ 1 1 L(w)=\frac{1}{2}\left \| y-xw \right \|^{2}_{2}+\gamma \left \| w \right \|^{1}_{1} L(w)=21​∥y−xw∥22​+γ∥w∥11​
梯度下降法就是将样本中的 K K K个纬度分别求导,每次对一个 w k w_{k} wk​进行求偏导,其它 w i w_{i} wi​当作常数,有:
γ s i g n ( w k ) = { − γ w k < 0 [ − γ , γ ] w k = 0 γ w k > 0 \gamma sign(w_{k})=\left\{\begin{matrix} -\gamma & w_{k}<0 \\ [-\gamma ,\gamma ] & w_{k}=0 \\ \gamma &w_{k}>0 \end{matrix}\right. γsign(wk​)=⎩⎨⎧​−γ[−γ,γ]γ​wk​<0wk​=0wk​>0​
∂ L ∂ w k = − x k ( y − x w ) + γ s i g n ( w k ) \frac{\partial L}{\partial w_{k}}=-x_{k}(y-xw)+\gamma sign(w_{k}) ∂wk​∂L​=−xk​(y−xw)+γsign(wk​)
= − x k y + x k x w + γ s i g n ( w k ) =-x_{k}y+x_{k}xw+\gamma sign(w_{k}) =−xk​y+xk​xw+γsign(wk​)
= − x k y + x k ∑ i ≠ k K x i w i + x k 2 w k + γ s i g n ( w k ) =-x_{k}y+x_{k}\sum_{i\neq k}^{K}x_{i}w_{i}+x_{k}^{2}w_{k}+\gamma sign(w_{k}) =−xk​y+xk​i​=k∑K​xi​wi​+xk2​wk​+γsign(wk​)
令偏导等于0,有: − x k y + x k ∑ i ≠ k K x i w i + x k 2 w k + γ s i g n ( w k ) = 0 -x_{k}y+x_{k}\sum_{i\neq k}^{K}x_{i}w_{i}+x_{k}^{2}w_{k}+\gamma sign(w_{k})=0 −xk​y+xk​∑i​=kK​xi​wi​+xk2​wk​+γsign(wk​)=0,为了找出 γ s i g n ( w k ) \gamma sign(w_{k}) γsign(wk​)的值,此时应该分情况讨论:
设 p k = − x k y + x k ∑ i ≠ k K x i w i p_{k}=-x_{k}y+x_{k}\sum_{i\neq k}^{K}x_{i}w_{i} pk​=−xk​y+xk​∑i​=kK​xi​wi​。

  1. 若 p k > γ p_{k}>\gamma pk​>γ:

    • 如果 w k > 0 w_{k}>0 wk​>0:
      p k + γ s i g n ( w k ) > 0 p_{k}+\gamma sign(w_{k})>0 pk​+γsign(wk​)>0,再加上一个大于0的 x k 2 w k x_{k}^{2}w_{k} xk2​wk​,则没有条件不满足偏导等于0的情况,因为两个正数相加大于0
    • 如果 w k < 0 w_{k}<0 wk​<0:
      p k + γ s i g n ( w k ) > 0 p_{k}+\gamma sign(w_{k})>0 pk​+γsign(wk​)>0,再加上一个小于0的 x k 2 w k x_{k}^{2}w_{k} xk2​wk​,有条件满足偏导等于0的情况,因为一正一负
  2. 若 p k < − γ p_{k}<-\gamma pk​<−γ:

    • 如果 w k > 0 w_{k}>0 wk​>0:
      p k + γ s i g n ( w k ) < 0 p_{k}+\gamma sign(w_{k})<0 pk​+γsign(wk​)<0,再加上一个大于0的 x k 2 w k x_{k}^{2}w_{k} xk2​wk​,有条件满足偏导等于0,因为一正一负
    • 如果 w k < 0 w_{k}<0 wk​<0:
      p k + γ s i g n ( w k ) < 0 p_{k}+\gamma sign(w_{k})<0 pk​+γsign(wk​)<0,再加上一个小于0的 x k 2 w k x_{k}^{2}w_{k} xk2​wk​,则没有条件不满足偏导等于0的情况的情况,因为两个负数相加小于0
  3. 若 − γ < p k < γ -\gamma<p_{k}<\gamma −γ<pk​<γ:

    • 如果 w k > 0 w_{k}>0 wk​>0:
      p k + γ s i g n ( w k ) > 0 p_{k}+\gamma sign(w_{k})>0 pk​+γsign(wk​)>0,再加上一个大于0的 x k 2 w k x_{k}^{2}w_{k} xk2​wk​,则没有条件不满足偏导等于0的情况,因为两个正数相加大于0
    • 如果 w k < 0 w_{k}<0 wk​<0:
      p k + γ s i g n ( w k ) < 0 p_{k}+\gamma sign(w_{k})<0 pk​+γsign(wk​)<0,再加上一个小于0的 x k 2 w k x_{k}^{2}w_{k} xk2​wk​,则没有条件不满足偏导等于0的情况的情况,因为两个负数相加小于0
    • 只能考虑 γ s i g n ( w k ) = 0 \gamma sign(w_{k})=0 γsign(wk​)=0即 w k = 0 w_{k}=0 wk​=0的情况。

综上各种情况,得到 w k w_{k} wk​的解: w k ∗ = { 1 x k 2 ( x k y − x k ∑ i ≠ k K x i w i − x k 2 w k + γ ) − x k y + x k ∑ i ≠ k K x i w i > γ 1 x k 2 ( x k y − x k ∑ i ≠ k K x i w i − x k 2 w k − γ ) − x k y + x k ∑ i ≠ k K x i w i < − γ 0 − γ < − x k y + x k ∑ i ≠ k K x i w i < γ w_{k}^{*}=\left\{\begin{matrix} \frac{1}{x_{k}^{2}}(x_{k}y-x_{k}\sum_{i\neq k}^{K}x_{i}w_{i}-x_{k}^{2}w_{k}+\gamma ) & -x_{k}y+x_{k}\sum_{i\neq k}^{K}x_{i}w_{i}>\gamma \\ \frac{1}{x_{k}^{2}}(x_{k}y-x_{k}\sum_{i\neq k}^{K}x_{i}w_{i}-x_{k}^{2}w_{k}-\gamma ) & -x_{k}y+x_{k}\sum_{i\neq k}^{K}x_{i}w_{i}<-\gamma \\ 0 & -\gamma <-x_{k}y+x_{k}\sum_{i\neq k}^{K}x_{i}w_{i}<\gamma \end{matrix}\right. wk∗​=⎩⎪⎨⎪⎧​xk2​1​(xk​y−xk​∑i​=kK​xi​wi​−xk2​wk​+γ)xk2​1​(xk​y−xk​∑i​=kK​xi​wi​−xk2​wk​−γ)0​−xk​y+xk​∑i​=kK​xi​wi​>γ−xk​y+xk​∑i​=kK​xi​wi​<−γ−γ<−xk​y+xk​∑i​=kK​xi​wi​<γ​

迭代加权最小二乘求解

迭代加权最小二乘可以用来解决 p p p范数的问题,其推导过程参考该篇博客,这里只给出Lasso迭代的具体结果。
设 A A A为 m m m个样本,且每个样本有 n n n个属性, w w w为权重,$\theta $为参数。
有损失函数:
f ( θ ) = 1 2 ∥ A θ − y ∥ 2 2 + γ ∥ θ ∥ 1 1 f(\theta )=\frac{1}{2}\left \| A\theta -y \right \|_{2}^{2}+\gamma \left \| \theta \right \|_{1}^{1} f(θ)=21​∥Aθ−y∥22​+γ∥θ∥11​
引入权重后:
f ( θ ) = 1 2 ∥ A θ − y ∥ 2 2 + γ ∥ w θ ∥ 2 2 f(\theta )=\frac{1}{2}\left \| A\theta -y \right \|_{2}^{2}+\gamma \left \| w \theta \right \|_{2}^{2} f(θ)=21​∥Aθ−y∥22​+γ∥wθ∥22​
每次迭代:
θ k + 1 = ( A T A + γ w T w ) − 1 A T y \theta ^{k+1}=(A^{T}A+\gamma w^{T}w)^{-1}A^{T}y θk+1=(ATA+γwTw)−1ATy
w i k + 1 = 1 θ i k + 1 + ε w_{i}^{k+1}=\frac{1}{\theta _{i}^{k+1}+\varepsilon } wik+1​=θik+1​+ε1​ ε \varepsilon ε是一个很小的数,为了防止 θ i k + 1 \theta _{i}^{k+1} θik+1​为0。

次梯度(坐标法)、迭代加权最小二乘、ADMM求解Lasso相关推荐

  1. 最小二乘、加权最小二乘(WLS)、迭代加权最小二乘(迭代重加全最小二乘)(IRLS)

    最小二乘.加权最小二乘(WLS).迭代加权最小二乘(迭代重加全最小二乘)(IRLS) 最小二乘: 最小二乘法(又称最小平方法)是一种数学优化技术.它通过最小化误差的平方和寻找数据的最佳函数匹配.利用最 ...

  2. IRLS迭代加权最小二乘

    致谢: 1)论文和仿真 Iterative Reweighted Least Squares: https://pdfs.semanticscholar.org/9b92/18e7233f4d0b49 ...

  3. 最小二乘法,加权最小二乘法,迭代重加权最小二乘法 (含代码)【最小二乘线性求解】

    文章目录 一:最小二乘法(OLS) 1:概述 2:代数式 3:矩阵式(推荐) 3.1:实现代码 二:加权最小二乘法(WLS) 1:增加对角矩阵 W 1.1:实现代码 三:迭代重加权最小二乘法(IRLS ...

  4. ADMM,ISTA,FISTA算法步骤详解,MATLAB代码,求解LASSO优化问题

    ADMM,ISTA,FISTA算法步骤详解,MATLAB代码,求解LASSO优化问题 原创文章!转载需注明来源:©️ Sylvan Ding's Blog ❤️ 实验目的 了解 ADMM, ISTA, ...

  5. python加权最小二乘_【Python】统计科学之加权最小二乘法

    首页 专栏 python 文章详情 0 统计科学之加权最小二乘法 张俊红发布于 今天 10:03 今天这篇来讲讲加权最小二乘法(WLS),加权最小二乘是在普通的最小二乘回归(OLS)的基础上进行改造的 ...

  6. matlab fair,matlab练习程序(加权最小二乘)

    起本篇题目还是比较纠结的,原因是我本意打算寻找这样一个算法:在测量数据有比较大离群点时如何估计原始模型. 上一篇曲面拟合是假设测量数据基本符合均匀分布,没有特别大的离群点的情况下,我们使用最小二乘得到 ...

  7. 【优化】近端梯度下降(Proximal Gradient Descent)求解Lasso线性回归问题

    文章目录 近端梯度下降的背景 常见线性回归问题 近端算子(Proximal Operator) 近端梯度下降迭代递推方法 以Lasso线性回归问题为例 参考资料 近端梯度下降的背景 近端梯度下降(Pr ...

  8. 异方差性以及加权最小二乘优化

    异方差性(heteroscedasticity )是相对于同方差而言的.所谓同方差,是为了保证回归参数估计量具有良好的统计性质,经典线性回归模型的一个重要假定:总体回归函数中的随机误差项满足同方差性, ...

  9. 实例:近似点梯度法、 Nesterov 加速算法求解 LASSO 问题

    实例:近似点梯度法. Nesterov 加速算法求解 LASSO 问题 实例:近似点梯度法. Nesterov 加速算法求解 LASSO 问题 考虑 LASSO 问题 构建 LASSO 优化问题 求解 ...

最新文章

  1. VTK:Math之NormalizeVector
  2. java scanner转string,Java InputStream to String 转化
  3. 苹果新的编程语言 Swift 语言进阶(七)--枚举、结构、类
  4. 震惊!99%的网络工程师都不知道的组播问题
  5. EasyRecovery,拯救那些遗失的文件
  6. 根据ip做客户端gps定位
  7. vm服务器复制文件,怎么实现从宿主机拖动复制文件到虚拟机VM中的示例
  8. lintcode 983. 棒球游戏
  9. 三大中值定理及简单例题
  10. 玩战塔英雄不显示服务器,王者荣耀的这个问题,国家点名了仍没有改正过来!战塔英雄就没有...
  11. php 带逗号数字转换,php实现数字格式化,数字每三位加逗号的功能函数169856420=169,856,420...
  12. 变化向量检测方法CVA(change vector analysis)
  13. 解决ONENOTE for WIN10同步问题,E000006B同步错误
  14. 配置python环境变量_星座般配,星座般配图
  15. 一个留学生的自白:清华vsMIT
  16. 视频教程-微信小程序项目实战之我画你猜视频课程-微信开发
  17. 小米电视6和小米电视6至尊版区别
  18. BDD - Specflow Bindings
  19. python脚本AttributeError: module 'xxxx' has no attribute 'xxxxx'错误解决办法
  20. Python背单词记单词小程序,可自定义词库,支持多种记忆模式,根据词义拼写、选择单词,根据词意选择单词

热门文章

  1. 电商商品规格选择逻辑
  2. 干货:如何让自已设计思维源源不断?
  3. microsoft edge浏览器朗读卡顿解决办法
  4. 用hive解决数据的查找问题(影评案例)
  5. 网络工程师课程---3、IP与路由器(ip地址的主要作用是什么)
  6. ntfs linux权限设置,如何在NTFS(或FAT32)分区上使用'chmod'? - Ubuntu问答
  7. 华为云——AI人脸编辑让Lena微笑
  8. 如何将瑞克和莫蒂的字幕和音频抓下来练习口语
  9. 机器人课程反馈中如何面对批评和负面消息
  10. GIT - 解决冲突