1、概述

通过对损失函数(即优化目标)加入惩罚项,使得训练求解参数过程中会考虑到系数的大小,通过设置缩减系数(惩罚系数),会使得影响较小的特征的系数衰减到0,只保留重要的特征。常用的缩减系数方法有lasso(L1正则化),岭回归(L2正则化)。
关于L1,L2正则化讲解:http://blog.csdn.net/wsj998689aa/article/details/39547771
http://blog.csdn.net/jinping_shi/article/details/52433975

2、正则化的目的

(1) 消除噪声特征
如果模型考虑了一些不必要的特征,那么这些特征就算是噪声。噪声是没必要的,使得模型复杂,降低模型准确性,需要剔除。
(2) 消除关联的特征
如果模型的特征空间中存在关联的特征,这会使得模型不适定,即模型参数会有多解。训练得到的只是其中一个解,这个解往往不能反映模型的真实情况,会误导模型的分析与理解。训练求解的模型参数受样本影响特别大,样本变化一点点,参数解就跳到另一组解去了。总之,模型是不稳定的。

3、正则化模型

正则化就是把额外的约束或者惩罚项加到已有模型(损失函数)上,以防止过拟合并提高泛化能力。损失函数由原来的E(X,Y)变为E(X,Y)+lamda||β||,w是模型系数组成的向量(有些地方也叫参数parameter,coefficients),||·||一般是L1或者L2范数,lamda是一个可调的参数,控制着正则化的强度。当用在线性模型上时,L1正则化和L2正则化也称为Lasso和Ridge。

(1) Lasso (L1正则化)

L1正则化将系数w的L1范数作为惩罚项加到损失函数上,由于正则项非零,这就迫使那些弱的特征所对应的系数变成0。因此L1正则化往往会使学到的模型很稀疏(系数β经常为0),这个特性使得L1正则化成为一种很好的特征选择方法。

如果继续增加lamda的值,得到的模型就会越来越稀疏,即越来越多的特征系数β会变成0。

Lasso(Regression Shrinkage and Selection via the Lasso,Tibshirani(1996))方法是一种压缩估计。它通过构造一个罚函数得到一个较为精炼的模型,使得它压缩一些系数,同时设定一些系数为零。因此保留了子集收缩的优点,是一种处理具有复共线性数据的有偏估计。
  Lasso 的基本思想是在回归系数的绝对值之和小于一个常数的约束条件下,使残差平方和最小化,从而能够产生某些严格等于0 的回归系数,得到可以解释的模型。R的Lars 算法的软件包提供了Lasso编程,我们根据模型改进的需要,可以给出Lasso算法,并利用AIC准则和BIC准则给统计模型的变量做一个截断,进而达到降维的目的。因此,我们通过研究Lasso可以将其更好的应用到变量选择中去。
  

然而,L1正则化像非正则化线性模型一样也是不稳定的,如果特征集合中具有相关联的特征,当数据发生细微变化时也有可能导致很大的模型差异(回归系数变化较大)。

(2) 岭回归(L2正则化)

L2正则化将系数向量的L2范数添加到了损失函数中。由于L2惩罚项中系数是二次方的,这使得L2和L1有着诸多差异,最明显的一点就是,L2正则化会让系数的取值变得平均。对于关联特征,这意味着他们能够获得更相近的对应系数。还是以Y=X1+X2为例,假设X1和X2具有很强的关联,如果用L1正则化,不论学到的模型是Y=X1+X2还是Y=2X1,惩罚都是一样的,都是2lamda。但是对于L2来说,第一个模型的惩罚项是2lamda,但第二个模型的是4*lamda。可以看出,系数之和为常数时,各系数相等时惩罚是最小的,所以才有了L2会让各个系数趋于相同的特点。

可以看出,L2正则化对于特征选择来说一种稳定的模型,不像L1正则化那样,系数会因为细微的数据变化而波动。所以L2正则化和L1正则化提供的价值是不同的,L2正则化对于特征理解来说更加有用:表示能力强的特征对应的系数是非零。

也就是说,在不同的数据上L1正则化得到的模型(系数)相差较大,但对于L2正则化模型来说,结果中的系数非常的稳定,差别较小,都比较接近某一个常数,能够反映出数据的内在结构。

与lasso相比,这里的惩罚项加上了平方:

http://dataunion.org/14072.html
https://onlinecourses.science.psu.edu/stat857/node/155
scikit-learn: http://scikit-learn.org/stable/modules/linear_model.html#lars-lasso

特征缩减技术(shrinkage): lasso和岭回归相关推荐

  1. 机器学习之LASSO,岭回归

    回归算法 文章参考 1.线性回归 假设有数据有 其中: 其中m为训练集样本数,n为样本维度,y是样本的真实值.线性回归采用一个多维的线性函数来尽可能的拟合所有的数据点,最简单的想法就是最小化函数值与真 ...

  2. 案例 | 基于JMP Pro的Lasso及岭回归在水稻全基因组预测中的应用

    全基因组选择是21世纪动植物育种的一种重要的选择策略,其核心就是全基因组预测,即基于分布在整个基因组上的多样性分子标记来对育种值进行预测,为个体的选择提供依据.但目前提出的大多数全基因组预测方法都涉及 ...

  3. 岭回归(Ridge Regression)和Lasso回归

    1.岭回归(Ridge Regression) 标准线性回归(简单线性回归)中: 如果想用这个式子得到回归系数,就要保证(X^TX)是一个可逆矩阵. 下面的情景:如果特征的数据比样本点还要多,数据特征 ...

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

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

  5. 机器学习——线性回归衍生(过拟合、正则化、岭回归和LASSO回归)

    过拟合.正则化.岭回归.LASSO回归 为什么会出现线性回归的衍生方法--正规方程法的局限 过拟合 模型复杂度 过拟合的概念 防止过拟合的办法 正则化 岭回归(Ridge Regression) 1. ...

  6. 一文读懂线性回归、岭回归和Lasso回归

    (图片由AI科技大本营付费下载自视觉中国) 作者 | 文杰 编辑 | yuquanle 本文介绍线性回归模型,从梯度下降和最小二乘的角度来求解线性回归问题,以概率的方式解释了线性回归为什么采用平方损失 ...

  7. lasso回归_一文读懂线性回归、岭回归和Lasso回归

    (图片由AI科技大本营付费下载自视觉中国) 作者 | 文杰 编辑 | yuquanle 本文介绍线性回归模型,从梯度下降和最小二乘的角度来求解线性回归问题,以概率的方式解释了线性回归为什么采用平方损失 ...

  8. r语言岭回归参数选择_78-预测分析-R语言实现-岭回归与LASSO回归

    > library(pacman) > p_load(dplyr, readr, caret) 以上一节中未去除离群值的MSE为3619.029,修正R2为0.8603和去除离群值后的MS ...

  9. 机器学习--线性回归2(共线性问题、岭回归、lasso算法)

    上一节我们讲了线性回归的一元线性回归和多元线性回归,其中多元线性回归在求解的过程中又分为满秩和非满秩的情况,进而引出了的最大释然估计进行处理,后面详细的对回归误差进行了分析,最后误差来源于平方偏置.方 ...

最新文章

  1. git/github使用完整教程(2)分支
  2. uni-app发布为H5页面白屏问题
  3. 管理感悟:可接受的不参加培训的理由
  4. Luogu1638 逛画展
  5. [GIS原理] 10.1 空间统计描述(描述性分析、探索性数据分析)、空间自相关分析 - QQ图、权重矩阵、Moran'sl、G统计量
  6. 微信 - 微信语音转发好友 / 朋友圈方法
  7. 宁波市重点首版次软件认定申报,区块链可申请 | 产业区块链发展周报
  8. 看漫画与动漫选他们吧,两款多源怪,再也不愁找不到了
  9. 1.3.9 快速生成树配置
  10. python查看虚拟环境列表_python虚拟环境virtualenv高级篇
  11. UART协议及串口回环
  12. 变形菌门扩张——肠道微生态失调和炎症肠病的潜在特征
  13. WIN10 困扰多时的屏幕亮度 终于可以调节了-完美 -更新2018年2月28日
  14. opencv获取灰度图像的像素值
  15. c语言还是python-自学编程应该从c语言还是python入手?
  16. 微信小程序消息推送,实现未完成计划的在微信内的定时提醒功能
  17. Android DES,AES,RSA加密实现
  18. BZOJ.4598.[SDOI2016]模式字符串(点分治 Hash)
  19. java后台如何给数据给前端_JAVA后台 关于如何从后台传递信息在jsp前端页面显示...
  20. 国标28181:接收设备注册

热门文章

  1. UE-摄像机视角的切换
  2. 计算机网络复试面试题
  3. php nette,thinkphp 采用nettemail发送邮件
  4. Linux命令df和du
  5. Android使用addr2line定位native崩溃堆栈
  6. 导出excel poi
  7. 循环函数:while循环和for循环及函数定义
  8. 阿里云服务器(Windows)如何用苹果手机远程连接?
  9. linux系统python3环境下安装pymysql模块
  10. 车牌检测(分别使用Haar级联 和轮廓裁剪)