第二章.线性回归以及非线性回归—弹性网

第二章.线性回归以及非线性回归

2.14 弹性网(Elastic Net)

  • Elastic Net是一种使用L1和L2作为正则化矩阵的线性回归模型,这种组合用于只有很少的权重非零的稀疏模型。
  • 当多个特征和另一个特征相关时,弹性网络非常有用,Lasso倾向于随机选择其中一个,而弹性网络更倾向于选择两个。
  • 在实践中,Lasso和Ridge之间权衡的一个优势是它允许在循环过程中继承了Ridge的稳定性。

1.代价函数:

第二章.线性回归以及非线性回归—弹性网_第1张图片

  • q=2时,岭回归,q=1时,LASSO回归,q不同所对应的图像不同,常用的是q=1或q=2
  • q值不同所对应的图像不同,常用的是q=1,q=2

2.弹性网中正则项的完整形式:

第二章.线性回归以及非线性回归—弹性网_第2张图片

  • 弹性网结合了岭回归和LASSO的特点,结果更精准一点
  • 当α=0.2时,岭回归占0.2,LASSO占0.8

3.实战2:sklearn—弹性网:

1).CSV中的数据:

  • longley.csv

2).代码

import numpy as np
from numpy import genfromtxt
from sklearn import linear_model

# 导入数据
data = genfromtxt('D:\\Data\\longley.csv', delimiter=',')

# 数据切片
x_data = data[1:, 2:]
y_data = data[1:, 1]

# 加载模型
model = linear_model.ElasticNetCV()

# 拟合线性模型
model.fit(x_data, y_data)

# 弹性网系数
coeff = model.alpha_
print('弹性网系数:', coeff)

# 相关系数
rcoeff = model.coef_
print('相关系数:', rcoeff)

# 预测值
pred = model.predict(x_data[2, np.newaxis])
print('第二行的预测数据:', pred, '实际数据:88.2')

3).结果展示:

①.数据

在这里插入图片描述

你可能感兴趣的:(回归,线性回归,python,sklearn)