本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com
本文展示一个python的sklearn中实现Lasso回归的Demo,方便使用时借鉴与参考
本节展示如何使用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