sklearn之LASSO算法应用

前言: 本文介绍LASSO算法理论以及sklearn中Lasso算法如何调用和使用

一、LASSO算法和岭回归算法对比
•Tibshirani(1996)提出了Lasso(The Least Absolute Shrinkage and
Selectionator operator)算法。
• 通过构造一个一阶惩罚函数获得一个精炼的模型;通过最终确定一些
指标(变量)的系数为零(岭回归估计系数等于0的机会微乎其微,
造成筛选变量困难),解释力很强。
• 擅长处理具有多重共线性的数据,与岭回归一样是有偏估


LASSO算法的代价函数和岭回归的代价函数都是为了防止过拟合,但是,岭回归算法很难使得模型参数为0,而LASSO算法可以使得模型中的很多参数(对于本数据模型训练影响不大)为0,进而使得模型的特征要素减少

二、sklearn中应有LASSO算法示例代码

import numpy as np
from numpy import genfromtxt
from sklearn import linear_model# 读取数据
data = genfromtxt(r'longley.csv', delimiter=',')# 切分数据
x_data = data[1:, 2:]
y_data = data[1:, 1, np.newaxis]# 训练模型
model = linear_model.LassoCV()
model.fit(x_data, y_data)# 训练后选择的lasso系数
print(model.alpha_)
# 训练后线性模型参数
print(model.coef_)# 预测值
print(model.predict(x_data[-2, np.newaxis]))
print(y_data[-2])  # 真实值

三、代码执行结果

20.03464209711722
[0.10206856 0.00409161 0.00354815 0.         0.         0.        ]
[115.6461414]
[115.7]

由上面结果可知,LASSO算法会自动得到一个合适的λ值,并且其训练出的模型中有很多参数为0 ,可以认为参数为0的特征是不重要的特征,可以舍弃,进而简化模型。

四、数据下载
链接:https://pan.baidu.com/s/14xi9nAW4DyY3mWFp_GTb0w
提取码:3kf3

sklearn之LASSO算法应用相关推荐

  1. 机器学习算法笔记——P22 sklearn—LASSO算法

    机器学习算法笔记--P22 sklearn-LASSO算法 #!/usr/bin/env python # coding: utf-8# In[1]:import numpy as np from n ...

  2. LASSO算法确定指标权重的一次实践(python dataframe数据结构处理与数据读写 sklearn)

    由于大创项目的需要,在尝试构建一个评分体系,并且使用该评分体系对企业进行评分,最后利用该评分对股票收益率进行预测.在一个指标体系中,需要确定指标的构成和各指标之间的权重. 而这个代码则是尝试着使用LA ...

  3. ML之LiRLasso:基于datasets糖尿病数据集利用LiR和Lasso算法进行(9→1)回归预测(三维图散点图可视化)

    ML之LiR&Lasso:基于datasets糖尿病数据集利用LiR和Lasso算法进行(9→1)回归预测(三维图散点图可视化) 目录 基于datasets糖尿病数据集利用LiR和Lasso算 ...

  4. 数据预处理与特征工程—9.Lasso算法实现特征选择

    文章目录 引言 实战 引言   为什么Lasso算法可以用于特征选择呢?因为Lasso算法可以使特征的系数进行压缩并且可以使某些回归系数为0,即不选用该特征,因此可以进行特征选择.而与它同为线性回归正 ...

  5. 第二章.线性回归以及非线性回归—LASSO算法

    第二章.线性回归以及非线性回归 2.13 LASSO算法 1.前期导入: 通过构造一个一阶惩罚函数获得一个精炼的模型:通过最终确定一些指标(变量)的系数为零,解释力很强 岭回归估计系数等于0的机会微乎 ...

  6. 用Python对案例进行Ridge算法和Lasso算法的比较

    文章目录 1. 加载数据 2.数据处理 3.划分数据 4.搭建管道 5.数据分割 6. 画图 7. 特别说明 1. 加载数据 import numpy as np import matplotlib ...

  7. 【机器学习】LASSO算法弹性网络

    1.在上一次我们说了Rigde回归.在那之间我们说了对于代价函数有两种正则化的方式:L1正则化和L2正则化.这两种正则化的目的有一个很重要的共同点就是抵抗多重共线性,在岭回归中我们使用的是L2正则化, ...

  8. Python使用sklearn构建lasso回归模型并指定样本权重:即构建带样本权重(sample_weight)的回归模型

    Python使用sklearn构建lasso回归模型并指定样本权重:即构建带样本权重(sample_weight)的回归模型 目录

  9. sklearn LDA降维算法

    sklearn LDA降维算法 LDA(Linear Discriminant Analysis)线性判断别分析,可以用于降维和分类.其基本思想是类内散度尽可能小,类间散度尽可能大,是一种经典的监督式 ...

最新文章

  1. Py之xlutils:xlutils的简介、安装、使用方法之详细攻略
  2. bzoj 4515: [Sdoi2016]游戏
  3. 软件设计原则(二)单一职责原则 -Single Responsibility Principle
  4. MapXtreme 安装、编码及打包注意事项
  5. Nginx配置文件详细说明(转)
  6. mysql oracle 数据类型转换_Mysql与Oracle之间的数据类型转换
  7. Linux的shell编程(二)
  8. 7月-伟大的事业,一般都是在下半年完成的
  9. UOS开启开发者模式
  10. python把多个人声分离_python音轨分离神器
  11. php在线拍照代码,PHP+Javascript实现在线拍照功能实例_php技巧
  12. Visio如何画箭头
  13. 接口测试如何生成随机的参数值
  14. html中如何淡化背景图片,Word2010如何去除图片背景
  15. 目前开发人工日多少钱_行内人解读开发一个App需要多少钱?-今日头条
  16. linux安装gcc5.4教程,arm-linux-gcc-5.4.0安装方法
  17. flutter编译遇到unknown revision or path not in the working tree的错误
  18. 《c语言入门经典》Ivor Horton第十章练习题4
  19. 第二章 随机变量及其分布
  20. 划分计算机发展的四个阶段主要依据,计算机的发展划分为4个阶段,分别为什么、什么、什么和什么。...

热门文章

  1. 使用QrCode解析二维码
  2. 用jdk1.8还是用jdk11
  3. 520特辑 有一个IDC运维工程师的女朋友是什么体验
  4. vue cli3关闭烦人的eslint 亲测有效
  5. 图形化编程实现模块化和面向对象编程
  6. 关系代数:集合运算和关系运算部分详解
  7. html5走格子游戏,JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解
  8. 特别“玄学”的define
  9. 深度玄学-实战开发步骤
  10. 高质量PM,都用哪些优质的开源项目管理工具