sklearn之LASSO算法应用

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

相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页