python机器学习库scikit-learn: Lasso Regression

Lasso回归是用于估计稀疏参数的线性模型,适用于特征选择。通过交叉验证得到的最优alpha,可以降低过拟合风险。案例展示表明,Lasso能在保持模型预测精度不变的情况下,有效减少特征维度,提高模型泛化能力。
摘要由CSDN通过智能技术生成

python机器学习库scikit-learn: Lasso Regression

在数据挖掘和机器学习算法的模型建立之初,为了尽量的减少因缺少重要变量而出现的模型偏差问题,我们通常会尽可能的多的选择自变量。但是在实际建模的过程中,通常又需要寻找 对响应变量具有解释能力的自变量子集,以提高模型的解释能力与预测精度,这个过程称为特征选择。

特征选择主要有两个功能:1.减少特征数量、降维,使模型泛化能力更强,减少过拟合  2.增强对特征和特征值之间的理解

Lasso回归模型,是一个用于估计稀疏参数的线性模型,特别适用于参数数目缩减。


一个简单的例子(这个例子简单介绍了Lasso应该如何使用):

from sklearn.datasets import make_regression
from sklearn.linear_model import Lasso

'''创造数据X Y'''
reg_data, reg_target = make_regression(n_samples=200, n_features=10, n_informative=5, noise=5)


''' 通过交叉检验来获取最优参数'''
from sklearn.linear_model import LassoCV
lassocv = LassoCV()
lassocv.fit(reg_data, reg_target)
alpha = lassocv.alpha_
print('利用Lasso交叉检验计算得出的最优alpha:' + str(alpha))


'''lasso回归'''
lasso = Lasso(1)
lasso.fit(reg_data, reg_target)


'''计算系数不为0的个数'''
import numpy as np
n = np.sum(lasso.coef_ != 0)
print('Lasso回归后系数不为0的个数:' + str(n))

'''输出结果
   如果names没有定义,则用X1 X2 X3代替
   如果Sort = True,会将系数最大的X放在最前'''
def pretty_print_linear(coefs, names = None, sort = False):  
    if names == None:  
        names = ["X%s" % x for x in range(len(coefs))]  
    lst &#
  • 8
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值