千家信息网

如何Python进行Lasso回归选取关键特征

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,本篇文章给大家分享的是有关如何Python进行Lasso回归选取关键特征,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。今天,分享一下La
千家信息网最后更新 2025年01月23日如何Python进行Lasso回归选取关键特征

本篇文章给大家分享的是有关如何Python进行Lasso回归选取关键特征,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

今天,分享一下Lasso回归用于选取关键特征,数据探索性分析时,引入的特征太多,要直接用这些特征建模分析,需要对原始特征进一步筛选,只保留重要的特征,Lasso算法在模型系数绝对值之和小于某常数的条件下,谋求残差平方和最小,在变量选取方面的效果优于逐步回归、主成分回归、岭回归、偏最小二乘等,能较好的克服传统方法在模型选取上的不足。

我们选取部分GDP指标如下所示:


Lasso回归概念


Lasso回归方法属于正则化方法的一种,是压缩估计。它通过构造一个惩罚函数得到一个较对精炼的模型。使用它压缩一些系数,同时设定一些系数为零,保留了子集收缩的优点,是一种处理具有复共线性数据的有偏估计。


Lasso基本原理


Lasso以缩小特征集(降阶)为思想,是一种收缩估计方法。Lasso方法可以将特征的系数进行压缩并使某些回归系数变为0,进而达到特征选择的目的,可以广泛地应用于模型改进与选择。通过选择惩罚函数,借用Lasso思想和方法实现特征选择的目的。模型选择本质上是寻求模型稀疏表达的过程,而这种过程可以通过优化一个"损失"+"惩罚"的函数问题来完成。


Lasso参数估计定义


其中,为非负正则参数,控制着模型的复杂程度。越大,对特征较多的线性模型的惩罚力度就越大,从而最终获得一个特征较少的模型,称为惩罚项。参数的确定可以采用交叉验证法,选取交叉验证误差最小的值。最后,按照得到的值,用全部数据重新拟合模型即可。


Lasso适用场景


当原始特征中存在多重共线性时,Laso回归不失为一种很好的处理共线性的方法,它可以有效地对存在多重共线性的特征进行筛选。在机器学习中,面对海量的数据,首先想到的就是降维,争取用尽可能少的数据解决问题,从这层意义上说,用Lasso模型进行特征选择也是一种有效的降维方法。从理论上说,Lasso对数据类型没有太多限制,可以接收任何类型的数据,而且一般不需要对特征进行标准化处理。


Lasso回归方法优缺点


Lasso回归方法的优点是可以弥补最小二乘估计法和逐步回归局部最优估计的不足,可以很好地进行特征的选择,有效地解决各特征之间存在多重共线性的问题。缺点是当存在一组高度相关的特征时,Lasso回归方法倾向于选择其中的一个特征,而忽视其他所有的特征,这种情况会导致结果的不稳定性。虽然Lasso回归方法存在弊端,但是在合适的场景中还是可以发挥不错的效果的。

得出Lasso回归后,各个特征的值如下表所示

用Lasso回归,剔除值为0.000的系数,得出,影响国内生产总值的关键因素为,X1、X2、X3、X4、X5 、X6、X7、X8、X9、X11、X12,用这些特征进行下一步的研究。


#Lasso模型程序

import numpy as np

import pandas as pd

from sklearn.linear_model import Lasso

inputfile = 'C:\\Users\\27342\\Desktop\\data.csv' #输入的数据文件

data = pd.read_csv(inputfile) #读取数据

lasso = Lasso(1000) #调用Lasso()函数,设置λ的值为1000

lasso.fit(data.iloc[:,0:12],data['y'])

print('相关系数为:',np.round(lasso.coef_,5)) #输出结果,保留五位小数


## 计算相关系数非零的个数

print('相关系数非零个数为:',np.sum(lasso.coef_ != 0))


mask = lasso.coef_ != 0 #返回一个相关系数是否为零的布尔数组

print('相关系数是否为零:',mask)


outputfile = 'C:\\Users\\27342\\Desktop\\new_reg_data.csv' #输出的数据文件

new_reg_data = data.iloc[:, mask] #返回相关系数非零的数据

new_reg_data.to_csv(outputfile) #存储数据

print('输出数据的维度为:',new_reg_data.shape) #查看输出数据的维度


以上就是如何Python进行Lasso回归选取关键特征,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

特征 数据 方法 模型 系数 选择 线性 关键 最小 函数 输出 有效 参数 问题 处理 原始 个数 优点 场景 就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 荒野行动哪个服务器有高级武器 互联网科技博物馆 危害网络安全的新闻 崂山区电商软件开发推荐 服务器虚拟机怎么远程管理 郑州互联网软件开发哪家正规 无线基站产品软件开发 金品服务器怎么进riad 智鑫开票服务器管理软件 河南手机软件开发外包 数据库安全性实验实验心得 诚信的软件开发培训班 杨浦区新时代软件开发费用 sql 服务器下载 免备案高防服务器 怎么把服务器锁起来 上位机软件开发出差后有补休吗 网络安全基础知识的培训 绝地求生台服服务器地址 网络安全防护处理措施 护苗 网络安全课讲话稿 河南齐游网络技术有限公司郭斌 软件开发费用支付验收比例 公开课网络安全教学视频 数据库网络安全技术与应用 西安市第七届国家网络安全宣传周 黄浦区营销网络技术服务以客为尊 数据库连接对象全局变量 基因组数据库高中生物 统考数据库怎么看
0