当前位置:   article > 正文

第二章.线性回归以及非线性回归—LASSO算法_非线性lassio回归代码

非线性lassio回归代码

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

2.13 LASSO算法

1.前期导入:

  • 通过构造一个一阶惩罚函数获得一个精炼的模型;通过最终确定一些指标(变量)的系数为零,解释力很强

  • 岭回归估计系数等于0的机会微乎其微,造成筛选变量困难

  • 擅长处理具有多重共线性的数据,与岭回归一样是有偏估计

2.LASSO与岭回归的差异:

1).代价函数:

  • 岭回归
    在这里插入图片描述

  • LASSO
    在这里插入图片描述

2).图像1层面理解:

  • 岭回归
    在这里插入图片描述

图像描述:
①.假设定义的函数里面只有β1和β2两个系数,有λ的限制条件时,可以绘制出图中的蓝色圆圈
②.图中的β^代表代价函数的最小值,一个圈代表一个代价函数的值,代价函数的值越小越好
③.图中红色点的是λ比较好的取值点(两个图像相切的点)

  • LASSO
    在这里插入图片描述

图像描述:
①.假设定义的函数里面只有β1和β2两个系数,有λ的限制条件时,可以绘制出图中的蓝色菱形
②.图中的β^代表代价函数的最小值,一个圈代表一个代价函数的值,代价函数的值越小越好
③.图中红色点的是λ比较好的取值点(两个图像相切的点)
④.相对来说,LASSO的β1的参数取值比较容易取到0,岭回归的参数比较难取到0

2).图像2层面理解:

  • 岭回归
    在这里插入图片描述
    图像描述:
    ①.不同的线代表不同的参数值
    ②.从右向左看,参数值不断的变小,通过增大正则项λ的系数,使得参数值不断变小,无限趋近于0,很难等于0

  • LASSO
    在这里插入图片描述
    图像描述:
    ①.不同的线代表不同的参数值
    ②.从右向左看,参数值不断的变小,通过增大正则项λ的系数,使得某些参数值等于0(等于0的参数可能是一些干扰参数,例如:噪声,或存在多重共线性的问题),选取少量参数构建模型,排除等于0的参数

3.实战2:sklearn—LASSO算法:

1).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.LassoCV()

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

# lasso系数
coeff = model.alpha_
print('lasso系数:', coeff)

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

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


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

3).结果展示:

①.数据

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/962666
推荐阅读
相关标签
  

闽ICP备14008679号