sklearn值弹性网算法应用以及线性回归模型算法总结
前言: 本文介绍另一种回归模型算法–弹性网,它结合了岭回归和LASSO算法,应该来说效果比单一的岭回归或者LASSO算法效果更好。
一、线性回归模型算法总结
目前已更新的博文中介绍了如下的几种方法去训练回归模型
1、梯度下降法
2、标准方程法
3、岭回归
4、LASSO
5、本博文的弹性网算法
二、弹性网算法介绍
弹性网算法结合了岭回归和LASSO算法,它主要是改变了正则化项的式子,弹性网算法正则化项如下
三、sklearn中弹性网算法使用Demo
import numpy as np
from numpy import genfromtxt
from sklearn import linear_model
# 读取数据
data = genfromtxt(r'longley.csv', delimiter=',')
# 切分数据
x_data = data[1:, 2:]
y_data = data[1:, 1, np.newaxis]
# 训练模型
model = linear_model.ElasticNetCV()
model.fit(x_data, y_data)
# 弹性网系数
print(model.alpha_)
# 回归模型参数
print(model.coef_)
# 预测值
print(model.predict(x_data[-2, np.newaxis]))
print(y_data[-2]) # 真实值
四、执行结果
42.96498005089394
[0.1016487 0.00416716 0.00349843 0. 0. 0. ]
[115.6037171]
[115.7]
有上图结果可以看到弹性网也可以达到LASSO的效果,使得多项指标(变量)为0,并且拟合效果较好
五、数据下载
链接:https://pan.baidu.com/s/14xi9nAW4DyY3mWFp_GTb0w
提取码:3kf3