老饼讲解:一步一步上手学习
在sklearn中,可以通过linear_model.Lasso函数来实现一个Lasso回归模型,本文展示一个使用sklearn实现线Lasso回归模型的完整Demo代码,通过本文可以了解如何调用sklearn来实现Lasso回归模型,以及它的实现效果。
下面展示一个python的sklearn中实现Lasso回归的Demo,Demo先是简单生成了数据,并设置正则系数,
然后调用sklearn的Lasso回归包,训练模型,最后展示回归的结果, 具体代码实现如下:
"""
本代码展示一个简单的sklearn实现LASSO回归的Demo代码
本代码来自《老饼讲解-机器学习》www.bbblearn.com
"""
from sklearn.linear_model import Lasso
import numpy as np
# --------------生成数据----------------
x = np.array([list(range(100)), [i*4+3 for i in range(100)]]).T # 变量x
y = x.dot([2,3]) # 输出y
# -------------Lasso模型训练------------
alpha = 0.3 # 设置alpha系数
clf = Lasso(alpha=alpha,fit_intercept=True,tol=1e-4,max_iter=1000) # 初始化Lasso回归模型
clf.fit(x,y) # 用数据训练模型
py = clf.predict(x) # 预测结果
# -------------打印结果------------------
loss = ((y-py)**2).sum()/(2*x.shape[0])+alpha*(abs(clf.coef_.sum())) # 计算损失值
print('\n=========Lasso训练结果=========') # 打印结果
print('权重:',clf.coef_) # 打印模型的权重
print('截距:', clf.intercept_) # 打印模型的阈值
print('均方误差:',((y-py)**2).mean()) # 均方误差
print('损失函数loss值:',loss) # 打印损失值
print('迭代次数:',clf.n_iter_) # 打印迭代次数
print('对偶间隙:',clf.dual_gap_) # 打印对偶间隙代码运行结果如下:

好了,以上就是sklearn实现Lasso回归的一个简单Demo了~
这里展示了用sklearn训练Lasso回归的一个简单DEMO例子,这主要是用于来与自实现代码的结果进行对比,确保自实现代码是正确复现sklearn中的Lasso回归的。
评论