一、Lasso回归背景

LASSO是由1996年Robert Tibshirani首次提出,全称Least absolute shrinkage and selection operator。
通过构造一个一阶惩罚函数获得一个精炼的模型;通过最终确定一些指标(变量)的系数为零,解释力很强。(相比较于岭回归。岭回归估计系数等于0的机会微乎其微,造成筛选变量困难)
擅长处理具有多重共线性的数据,与岭回归一样是有偏估计。
二、Lasso回归代价函数
在这里插入图片描述

三、具体案列

题目:作业:数据集abalone.txt,记录了鲍鱼(一种介壳类水生动物)的年龄,鲍鱼年龄可以从鲍鱼壳的层数推算得到。前8列是样本点的特征数据,最后一列是鲍鱼的年龄。请使用lasso回归回归对模型训练。
abalone.txt
在这里插入图片描述
(1)读取abalone.txt文件

#岭回归
import matplotlib.pyplot as plt
import numpy as np
from sklearn import linear_model
np.set_printoptions(suppress=True)#显示的数字不是以科学记数法显示
np.set_printoptions(threshold=np.inf)  #显示全部行列的内容
#读入数据
data=np.genfromtxt('abalone.txt')
#print(data)
x_data=data[:,:-1]
y_data=data[:,-1]
#print(x_data)
#print(y_data)

(2)建立并训练模型

#创建模型
lasso=linear_model.LassoCV(cv=3)
lasso.fit(x_data,y_data)
print('lasso系数',lasso.alpha_)
print(lasso.coef_)
print(lasso.intercept_)
#预测第三个样本点
lasso.predict(x_data[2,np.newaxis])
XData=x_data[:,1,np.newaxis]#加入新的维度

在这里插入图片描述
注:想了解岭回归可以点击这里

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐