千家信息网

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

发表于:2024-10-18 作者:千家信息网编辑
千家信息网最后更新 2024年10月18日,本篇文章给大家分享的是有关如何Python进行Lasso回归选取关键特征,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。今天,分享一下La
千家信息网最后更新 2024年10月18日如何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安全错误 数据库的锁怎样保障安全 公司服务器不间断掉线 组装服务器如何推广自己的网站 电信属于网络安全公司吗 好学软件开发培训学校 dw连接mysql数据库 核动力厂网络安全技术 大学的数据库技术与应用是学什么 计算机网络安全刘远生点评 服务器安全服务方案 软件开发需不需要编程 数据库中二级映像指什么 潮州自主可控软件开发市价 计算机网络技术书籍索取号 河南推广软件开发方案 服务器装家用系统如何 苏州阿里云服务器总代理 复印机数据库损坏怎么办 诛仙端游连接不上服务器怎么办 查看服务器文件上传速度 网络安全英语倡议书 网络安全等级保护出什么科目 思科网络技术学院教程笔记 服务器无响应请移动至登录页面 大学的数据库技术与应用是学什么 小学网络安全宣传图片 大学的网络安全系 如何在同一个服务器 db查询mysql数据库 软件开发练习案例 浙江人工智能软件开发要多少钱
0