线性回归、岭回归、Lasso回归

  • 前言
  • 一,线性回归——最小二乘
  • 二,Lasso回归
  • 三,岭回归
  • 四, Lasso回归和岭回归的同和异
  • 五, 为什么 lasso 更容易使部分权重变为 0 而 ridge 不行?
  • 参考资料

前言

如果对L1和L2正则化,最小二乘法不了解的,可以先看我写的下面两篇

  1. 正则化项L1和L2的总结
  2. 一元线性回归用最小二乘法的推导过程
  3. [机器学习-原理及实现篇]线性回归-最小二乘法

线性回归很简单,用线性函数拟合数据,用 mean square error (mse) 计算损失(cost),然后用梯度下降法找到一组使 mse 最小的权重。

lasso 回归和岭回归(ridge regression)其实就是在标准线性回归的基础上分别加入 L1 和 L2 正则化(regularization)。L1正则化和L2正则化可以看做是 损失函数的惩罚项

本文的重点是解释为什么 L1 正则化会比 L2 正则化让线性回归的权重更加稀疏,即使得线性回归中很多权重为 0,而不是接近 0。或者说,为什么 L1 正则化(lasso)可以进行 feature selection,而 L2 正则化(ridge)不行

一,线性回归——最小二乘

线性回归(linear regression),就是用线性函数 f(x)=w⊤x+bf(x)=w^⊤x+bf(x)=w⊤x+b去拟合一组数据
D=(x1,y1),(x2,y2),...,(xn,yn)D={(x_1,y_1),(x_2,y_2),...,(x_n,y_n)}D=(x1​,y1​),(x2​,y2​),...,(xn​,yn​) 并使得损失 J=1n∑i=1n(f(xi)−yi)2J=\frac{1}{n}\sum^{n}_{i=1}(f(x_i)−y_i)^2J=n1​∑i=1n​(f(xi​)−yi​)2 最小。线性回归的目标就是找到一组(w∗,b∗)(w^∗,b^∗)(w∗,b∗),使得损失 J 最小。

线性回归的拟合函数(或 hypothesis)为:
cost function (mse) 为:

实战的相关的例子可以看这个连接
[机器学习-原理及实现篇]线性回归-最小二乘法推导与实践代码
[机器学习-回归算法]Sklearn之线性回归实战

二,Lasso回归

Lasso 回归和岭回归(ridge regression)都是在标准线性回归的基础上修改 cost function,即修改式(2),其它地方不变。

Lasso 的全称为 least absolute shrinkage and selection operator,又译最小绝对值收敛和选择算子、套索算法。

Lasso 回归对式(2)加入 L1 正则化,其 cost function 如下:

三,岭回归

岭回归对式(2)加入 L2 正则化,其 cost function 如下:

四, Lasso回归和岭回归的同和异

  • 相同:都可以用来解决标准线性回归的过拟合问题。
  • 不同:
    lasso 可以用来做 feature selection,而 ridge 不行。或者说,lasso 更容易使得权重变为 0,而 ridge 更容易使得权重接近 0。
    从贝叶斯角度看,lasso(L1 正则)等价于参数 w 的先验概率分布满足拉普拉斯分布,而 ridge(L2 正则)等价于参数 w 的先验概率分布满足高斯分布。具体参考博客 从贝叶斯角度深入理解正则化 – Zxdon。
    也许会有个疑问,线性回归还会有过拟合问题?

加入 L1 或 L2 正则化,让权值尽可能小,最后构造一个所有参数都比较小的模型。因为一般认为参数值小的模型比较简单,能适应不同的数据集,也在一定程度上避免了过拟合现象。

可以设想一下对于一个线性回归方程,若参数很大,那么只要数据偏移一点点,就会对结果造成很大的影响;但如果参数足够小,数据偏移得多一点也不会对结果造成什幺影响,一种流行的说法是『抗扰动能力强』。具体参见博客 。浅议过拟合现象(overfitting)以及正则化技术原理

五, 为什么 lasso 更容易使部分权重变为 0 而 ridge 不行?


式(5)和(6)可以理解为,在 w 限制的取值范围内,找一个点 w^ 使得 mean square error 最小,t 可以理解为正则化的力度,式(5)和(6)中的 t 越小,就意味着式(3)和(4)中 λ 越大,正则化的力度越大 。

以 x∈R2 为例,式(5)中对 w 的限制空间是方形,而式(6)中对 w 的限制空间是圆形。因为 lasso 对 w 的限制空间是有棱角的,因此

的解更容易切在 w 的某一个维为 0 的点。如下图所示:

Fig. 1 中的坐标系表示 w 的两维,一圈又一圈的椭圆表示函数

的等高线,椭圆越往外,J 的值越大,w∗w^∗w∗ 表示使得损失 J 取得全局最优的值。使用 Gradient descent,也就是让 w 向着 w∗ 的位置走。如果没有 L1 或者 L2 正则化约束,w∗w^∗w∗ 是可以被取到的。但是,由于有了约束 ∥w∥1≤t∥w∥_1≤t∥w∥1​≤t 或 ∥w∥22≤t∥w∥^2_2≤t∥w∥22​≤t,w 的取值只能限制在 Fig. 1 所示的灰色方形和圆形区域。当然调整 t 的值,我么能够扩大这两个区域。

等高线从低到高第一次和 w 的取值范围相切的点,即是 lasso 和 ridge 回归想要找的权重 w^\hat{w}w^。

lasso 限制了 w 的取值范围为有棱角的方形,而 ridge 限制了 w 的取值范围为圆形,等高线和方形区域的切点更有可能在坐标轴上,而等高线和圆形区域的切点在坐标轴上的概率很小。这就是为什么 lasso(L1 正则化)更容易使得部分权重取 0,使权重变稀疏;而 ridge(L2 正则化)只能使权重接近 0,很少等于 0。

正是由于 lasso 容易使得部分权重取 0,所以可以用其做 feature selection,lasso 的名字就指出了它是一个 selection operator。权重为 0 的 feature 对回归问题没有贡献,直接去掉权重为 0 的 feature,模型的输出值不变。

对于 ridge regression 进行 feature selection,你说它完全不可以吧也不是,weight 趋近于 0 的 feature 不要了不也可以,但是对模型的效果还是有损伤的,这个前提还得是 feature 进行了归一化。\

参考资料

[1] https://flashgene.com/archives/11824.html

[机器学习-原理篇]学习之线性回归、岭回归、Lasso回归相关推荐

  1. 机器学习原理篇:基础数学理论 Ⅱ

    机器学习原理篇:基础数学理论 Ⅱ 文章目录 机器学习原理篇:基础数学理论 Ⅱ 一.前言 二.概率论 三.数理统计 四.最优化理论 1.目标函数 2.线性规划 3.梯度下降法 五.思考 1.微积分的主要 ...

  2. 机器学习(七)线性回归与岭回归Lasso回归与弹性网络与正则化

    机器学习(七) 线性回归 最小二乘法(Least Squares Method,简记为LSE)是一个比较古老的方法,源于天文学和测地学上的应用需要.在早期数理统计方法的发展中,这两门科学起了很大的作用 ...

  3. 普通线性回归/岭回归/lasso回归[x.T/np.dot/lrg.coef_/lrg.intercept_/Xw = y/r2_score]

    基础运算 导包 import numpy as np 随机产生数据集 a = np.random.randint(0,10,size = (2,3)) a Out: array([[2, 8, 2], ...

  4. 机器学习教程 之 线性模型:线性回归、对数几率回归、线性判别分析

    常用的三个线性模型的原理及python实现--线性回归(Linear Regression).对数几率回归(Logostic Regression).线性判别分析(Linear Discriminan ...

  5. 【机器学习】一文读懂正则化与LASSO回归,Ridge回归

    该文已经收录到专题机器学习进阶之路当中,欢迎大家关注. 1.过拟合 当样本特征很多,样本数相对较少时,模型容易陷入过拟合.为了缓解过拟合问题,有两种方法: 方法一:减少特征数量(人工选择重要特征来保留 ...

  6. 岭回归Lasso回归

    转自:https://blog.csdn.net/dang_boy/article/details/78504258 https://www.cnblogs.com/Belter/p/8536939. ...

  7. 《机器学习实战》学习总结(四)逻辑回归原理

    概述 逻辑回归要求数据类型为数值型. 逻辑回归与线性回归的区别: 逻辑回归的迭代过程就是为每个特征寻找一个系数,这些系数也叫做回归系数,如果直接计算∑θixi那么就是线性回归,要转化为逻辑回归,则需要 ...

  8. 机器学习(二)线性模型——线性回归、对数几率回归、线性判别分析

    一.线性回归 线性回归(linear regression:试图学得一个线性模型以尽可能准确地预测实值输出标记. 1.最简单的形式:输入属性的数且只有一个, 最小二乘法:基于均方差误差最小化来进行模型 ...

  9. [机器学习-原理篇]支持向量机(SVM)深入理解

    支持向量机SVM 1,SVM概念 1.1 支持向量机包含三种: 2.准备知识 KKT条件 点到直线的距离 3. 线性可分支持向量机(hard margin) 线性可分支持向量机建立超平面: 函数间隔: ...

最新文章

  1. log4j2的配置文件log4j2.xml笔记
  2. 每日程序C语言43-链表原地逆置
  3. Java的接口、继承与多态
  4. 【Python】浮点数计算时的不准确性以及如何进行精确计算
  5. Javascript的错误处理
  6. java设计模式_备忘录模式
  7. 使用Python批量随机化文件名
  8. UVA 818 Cutting Chains 切断圆环链 (暴力dfs)
  9. windows下WMI使用C++查询用户硬件信息
  10. Ubuntu10.04下Linux内核编译的完整步骤
  11. 【Matlab学习笔记】【函数学习】max()和max(max())的区别
  12. 在头文件中定义或声明变量
  13. SVN客户端安装详细教程
  14. GIS专业/GIS方向需要考那些证书
  15. ICEM 网格划分技巧(21-5)
  16. Redis使用Geo存储经纬度
  17. 亲身试验之后,我差点被微博上的兼职广告骗到三和
  18. Linux超级用户(root)的密码
  19. linux自动电梯设计,基于嵌入式Linux电梯控制系统
  20. 「Adobe国际认证」平面设计师的,终极排版术语综合指南,都包含了哪些设计要点?

热门文章

  1. CentOs6.5 更新python2.7,以及tab自动补全
  2. ActiveReports 报表应用教程 (15)---报表换肤
  3. 浅谈Node.js(概念、安装、入门例子)
  4. 《老子》中国古代先秦诸子百家经典欣赏
  5. 如何优化WebAPP性能:从四个层面上彻底优化前端项目性能
  6. 有了docsify神器,从此爱上看文档
  7. 容器编排技术 -- Kubernetes kubectl 概述
  8. Dubbo面试 - 如何自己设计一个类似 Dubbo 的 RPC 框架?
  9. Docker上搭建Mysql8.0服务器
  10. Android BGradualProgress 多种渐变、直角or弧角、进度条、加载条