老饼讲解-机器学习 机器学习 神经网络 深度学习
线性模型

【代码】sklearn-实现Lasso回归

作者 : 老饼 发表日期 : 2022-06-26 10:40:57 更新日期 : 2023-11-09 19:15:45
本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com



本文展示一个python的sklearn中实现Lasso回归的Demo,方便使用时借鉴与参考




  01. sklearn实现Lasso回归  



本节展示如何使用sklearn实现Lasso回归



       代码简介     


本文展示一个python的sklearn中实现Lasso回归的Demo,
Demo先是简单生成了数据,并设置正则系数,
然后调用sklearn的Lasoo回归包,训练模型,最后展示回归的结果




    sklearn实现Lasso回归-代码Demo    


在sklearn中要实现Lasso回归,只需调用linear_model.Lasso就可以
具体代码如下:
# -*- coding: utf-8 -*-
"""
LASSO 回归
"""
from sklearn.linear_model import Lasso
import numpy as np

#生成数据
x = np.array([list(range(100)), [i*4+3 for i in range(100)]]).transpose()
y = x.dot([2,3]) 

# Lasso模型训练
alpha =0.3  # 设置alpha,即正则项的lambda系数
mdl = Lasso(alpha=alpha,fit_intercept=True,tol=1e-4,max_iter=1000)
mdl.fit(x,y)            # 用数据训练模型
sim_y= mdl.predict(x)   # 预测


# ================= 打印结果 =======================
print('============ 调包Lasso训练结果==(start)==================')
print('权重:'+str(mdl.coef_))
print('截距:'+ str(mdl.intercept_))
print( '均方误差:'+str(((y-sim_y)*(y-sim_y)).sum()))
print( '损失函数loss值:'+str(((y-sim_y)*(y-sim_y)).sum()/(2*x.shape[0])+alpha*(abs(mdl.coef_.sum()))))
print('迭代次数:'+str(mdl.n_iter_))
print('对偶间隙:'+str(mdl.dual_gap_))
print('============ 调包Lasso训练结果==(end)==================')




  代码运行结果  


代码运行结果如下:
============ 调包Lasso训练结果==(start)==================
权重:[1.39993699e+01 1.35013501e-04]
截距:9.004050405040516                        
均方误差:0.0006750675067467831         
损失函数loss值:4.199854860486049       
迭代次数:2                                               
对偶间隙:314.98582358235825              
============ 调包Lasso训练结果==(end)==================









  End  






联系老饼