自实现-Lasso回归、岭回归

【代码】sklearn-实现Lasso回归

作者 : 老饼 发表日期 : 2022-06-26 10:40:57 更新日期 : 2025-04-18 17:28:25
本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com



在sklearn中,可以通过linear_model.Lasso函数来实现一个Lasso回归模型

本文展示一个使用sklearn实现线Lasso回归模型的完整Demo代码

通过本文可以了解如何调用sklearn来实现Lasso回归模型,以及它的实现效果




  01. sklearn实现Lasso回归  




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




    sklearn实现Lasso回归-代码Demo    


本文展示一个python的sklearn中实现Lasso回归的Demo,
Demo先是简单生成了数据,并设置正则系数,
然后调用sklearn的Lasoo回归包,训练模型,最后展示回归的结果
 具体代码实现如下:
"""
本代码展示一个简单的sklearn实现LASSO 回归的Demo代码
本代码来自《老饼讲解-机器学习》www.bbbdata.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系数
mdl   = Lasso(alpha=alpha,fit_intercept=True,tol=1e-4,max_iter=1000)          # 初始化Lasso回归模型
mdl.fit(x,y)                                                                  # 用数据训练模型
sim_y = mdl.predict(x)                                                        # 预测结果
loss =((y-sim_y)*(y-sim_y)).sum()/(2*x.shape[0])+alpha*(abs(mdl.coef_.sum())) # 计算损失值

# ================= 打印结果 =======================
print('\n============ 调包Lasso训练结果==(start)==================')
print('模型权重:', mdl.coef_)
print('模型阈值:', mdl.intercept_)
print( '均方误差:', ((y-sim_y)*(y-sim_y)).sum())
print( '损失函数loss值:', loss)
print('迭代次数:', mdl.n_iter_)
print('对偶间隙:', mdl.dual_gap_)
print('============ 调包Lasso训练结果==(end)==================')
代码运行结果如下:
 







好了,以上就是sklearn实现Lasso回归的一个简单Demo了~










  End  






内容纠正