1.套索回归的原理:

和岭回归一样,套索回归也会将系数限制在非常接近0的范围内,但是它限制的方式稍微有些不同,我们称之为L1正则化。与L2正则化不同的是,L1正则化会导致在使用套索回归的时候,有一部分特征的系数会正好等于0.也就是说,有一部分特征会彻底被模型忽略掉,这也可以看成是模型对特征进行自动选择的一种方式。把一部分系数变成0有助于让模型更容易理解,而且可以突出体现模型中最重要的那些特征。

2.套索回归实战:

import numpy as np
from sklearn.datasets import load_diabetes
from sklearn.model_selection import train_test_split
#载入糖尿病情数据集
X,y=load_diabetes().data,load_diabetes().target
X_train,X_test,y_train,y_test=train_test_split(X,y,random_state=1)
#导入岭回归
from sklearn.linear_model import Lasso
#使用岭回归对数据进行拟合
lasso=Lasso().fit(X_train,y_train)
print('训练集得分:{}'.format(lasso.score(X_train,y_train)))
print('测试集得分:{}'.format(lasso.score(X_test,y_test)))
print('套索回归使用的特征数量:{}'.format(np.sum(lasso.coef_!=0)))


结果分析:
这里我们看到,套索回归在训练数据集和测试数据集的得分都相当糟糕。这意味着我们的模型发生了欠拟合的问题,而且你会发现,在十个特征里,套索回归只用了其中的2个。与岭回归类似,套索回归也有一个正则化参数alpha,用来控制特征变量系数被约束到0的强度。

3.套索回归的参数调节:

在上面的例子里,我们使用了alpha参数的默认值1,为了降低欠拟合的程度,我们可以试着降低alpha的值,与此同时,我们还需要增加最大迭代次数(max——iter)的默认设置。

import numpy as np
from sklearn.datasets import load_diabetes
from sklearn.model_selection import train_test_split
#载入糖尿病情数据集
X,y=load_diabetes().data,load_diabetes().target
X_train,X_test,y_train,y_test=train_test_split(X,y,random_state=1)
#导入岭回归
from sklearn.linear_model import Lasso
#使用岭回归对数据进行拟合
lasso=Lasso(alpha=0.1,max_iter=100000).fit(X_train,y_train)
print('训练集得分:{}'.format(lasso.score(X_train,y_train)))
print('测试集得分:{}'.format(lasso.score(X_test,y_test)))
print('套索回归使用的特征数量:{}'.format(np.sum(lasso.coef_!=0)))


结果分析:
从结果上来看,降低alpha值可以拟合出更复杂的模型,从而在训练数据集和测试数据集都难获得良好的表现,相对岭回归,套索回归的表现还要更好一些,而且它只用了10个特征中的7个,这一点也会使模型更容易被人理解。
但是,如果我们把alpha设置的太低,就等于把正则化的效果去处了,那么模型就可能会像线性回归一样,出现过拟合的问题。

4.总结

在实践当中,岭回归往往是这两个模型中的优选。但是如果你的数据特征过多,而且其中只有一小部分是真正重要的,那么套索回归就是更好的选择。同样如果你需要对模型进行解释的话,那么套索回归会让你的模型更容易被人理解,因为它只使用了输入的特征值中的一部分。

ps:sklearn中还提供了一种模型,称为弹性网模型,弹性网模型综合了套索回归和岭回归的惩罚因子。在实践当中,这两个模型的组合是效果最好的,然而代价是用户需要调节两个参数,一个是L1正则化参数,另一个是L2正则化参数。

L1正则化的线性模型——套索回归相关推荐

  1. R语言中的岭回归、套索回归、主成分回归:线性模型选择和正则化

    概述和定义 在本文中,我们将考虑一些线性模型的替代拟合方法,除了通常的  普通最小二乘法.这些替代方法有时可以提供更好的预测准确性和模型可解释性.最近我们被客户要求撰写关于模型选择的研究报告,包括一些 ...

  2. R语言基于glmnet构建Logistic回归模型使用L1正则化并可视化系数及最佳lambda值

    R语言基于glmnet构建Logistic回归模型使用L1正则化并可视化系数及最佳lambda值 Glmnet主要用于拟合广义线性模型.筛选可以使loss达到最小的正则化参数lambda.该算法非常快 ...

  3. LASSO回归与L1正则化 西瓜书

    1.结构风险与经验风险 在支持向量机部分,我们接触到松弛变量,正则化因子以及最优化函数,在朴素贝叶斯分类,决策树我们也遇到类似的函数优化问题.其实这就是结构风险和经验风险两种模型选择策略,经验风险负责 ...

  4. 常用的三种线性模型算法--线性回归模型、岭回归模型、套索回归模型

    常用的三种线性模型算法–线性回归模型.岭回归模型.套索回归模型 线性模型基本概念 线性模型的一般预测模型是下面这个样子的,一般有多个变量,也可以称为多个特征x1.x2.x3 - 最简单的线性模型就是一 ...

  5. 正则化的岭回归、套索回归以及弹性网络

    文章目录 一.简介 二.岭回归 2.1 简介 2.2 岭回归成本函数 2.3 模型训练方法 三.Lasso回归 3.1 简介 3.2 Lasso回归成本函数 3.2 Lasso回归次梯度向量 3.3 ...

  6. (六十一)线性模型:线性回归、岭回归和套索回归

    线性回归(OLS) OLS的原理是,找到当训练集中y的预测值和真实值之差(残差)的平方和最小时,对应的参数(斜率.截距)值.需要使用的模块有: LinearRegression:线性回归模型: mak ...

  7. 学习机器学习四 回归模型——线性回归、L1正则化(Lasso回归)、L2正则化(ridge回归)

    还记得什么是回归吗?回忆下回归就是连续的输出,分类是离散的. 回归模型一般分为:①线性回归--就是线性方程,类似为一元一次方程(y=wx+b),比如你的年龄: ②逻辑回归(类似为曲线方程) 线性回归 ...

  8. 套索回归 岭回归_使用kydavra套索选择器进行回归特征选择

    套索回归 岭回归 机器学习(Machine Learning) We all know the Occam's Razor: 我们都知道Occam的剃刀: From a set of solution ...

  9. 套索回归 (Lasso Regression)的基本应用

    一.使用场合 与岭回归类似,套索 (Least Absolute Shrinkage and Selection Operator) 也会对回归系数的绝对值添加一个罚值.此外,它能降低偏差并提高线性回 ...

最新文章

  1. Golang TDD实践报告:快速排序Quick Sort
  2. Hook技术之4 在自己的进程中注入一个Dll到别人的进程
  3. HDU 3251 Being a Hero
  4. Rsyslog分类过略消息关键字收集程序日志
  5. EditPlus正则表达式
  6. 深度学习用途广:Nvidia工程师机智赶跑草坪上撒野的邻家喵星人
  7. 机器学习:决策树过拟合与剪枝,决策树代码实现(三)
  8. 浅谈提升C#正则表达式效率
  9. -XX:+UseParallelGC与 -XX:+UseParNewGC相关介绍
  10. html5自动打印图片,html2canvas生成清晰的图片实现打印代码示例
  11. 【转载】MySQL innodb_table_stats表不存在的解决方法
  12. 硬核干货来啦:Js数组去重,赶快收藏吧
  13. 【测试】一步步教你写一份优秀的软件测试简历
  14. 数学建模——Logistic Regression逻辑回归算法(二分类及多分类的Python代码实现)
  15. 相干性(Coherence)和相关性(Correlation)的区别和联系
  16. 计算机无线模块怎样关闭,台式机无线上网设置_台式电脑如何关闭WIFI?
  17. SQL Server evaluation period has expired
  18. This application is currently offline解决办法
  19. 关于使用fluxion工具破解wifi密码的详细教程
  20. 大一大二的小设计作品集合(yuan)

热门文章

  1. 7个月回本30%,店铺项目的若干经营数据
  2. 独立站选择什么类目好
  3. 唐相儒计算机,2016华中师范大学自主招生计算机类入围名单
  4. 王者荣耀VS大数据时代
  5. shanzhi - 学习元组和while循环
  6. HTC VIVE开发教程(三)
  7. 网络与新媒体专业有前途吗
  8. matlab编辑rayfile光源文件,rayfile怎么用?
  9. 5款电脑办公好帮手,建议收藏!
  10. Android Kotlin Gson解析踩坑记录