弹性网络回归

弹性网络ElasticNet是同时使用了系数向量的 l1 范数和 l2 范数的线性回归模型,使得可以学习得到类似于Lasso的一个稀疏模型,同时还保留了 Ridge 的正则化属性,结合了二者的优点,尤其适用于有多个特征彼此相关的场合。

主要参数说明

alpha: a值。

fit_intercept:一个布尔值,指定是否需要计算b值。如果为False,那么不计算b值(模型会认为你已经将数据中心化了)。

max_iter:整数值,指定最大迭代次数。

normalize:一个布尔值。如果为True,那么训练样本会在回归之前被归一化。

copy_X:一个布尔值,如果为True,则会复制X值

precompute:一个布尔值或者一个序列。他决定是否提前计算Gram矩阵来加速计算。

tol:一个浮点数,指定判断迭代收敛与否的阈值。

warm_start:一个布尔值,如为True,那么使用前一次训练结果继续训练。否则重头开始训练。

positive:一个布尔值,如为Ture,那么强制要求全中响亮的分量都为整数。

selection:一个字符串,可以为‘cyclic’(更新时候,从前向后一次选择权重向量的一个分量来更新)或者‘random’(随机选择权重向量的一个分量来更新),他指定了当每轮迭代的时候,选择权重向量的一个分量来更新

random_state:一个整数或者一个RandomState实例,或者为None。如果为整数,则他指定了随机数生成器种子。如果为RandomState实例,则指定了随机数生成器。如果为None,则使用默认的随机数生成器。

%config InteractiveShell.ast_node_interactivity = 'all'   #同时输出多行结果
from sklearn.linear_model import ElasticNet
reg = ElasticNet(alpha=1.0, l1_ratio=0.7)
X = [[3], [8]]
y = [1, 2]
reg.fit(X, y)
ElasticNet(alpha=1.0, copy_X=True, fit_intercept=True, l1_ratio=0.7,max_iter=1000, normalize=False, positive=False, precompute=False,random_state=None, selection='cyclic', tol=0.0001, warm_start=False)   #参数含义和lasso和ridge类似
reg.predict([[6]])
reg.coef_
reg.intercept_
ElasticNet(alpha=1.0, copy_X=True, fit_intercept=True, l1_ratio=0.7,max_iter=1000, normalize=False, positive=False, precompute=False,random_state=None, selection='cyclic', tol=0.0001, warm_start=False)ElasticNet(alpha=1.0, copy_X=True, fit_intercept=True, l1_ratio=0.7,max_iter=1000, normalize=False, positive=False, precompute=False,random_state=None, selection='cyclic', tol=0.0001, warm_start=False)array([1.54198473])
array([0.08396947])
1.0381679389312977
#修改参数比较结果
reg = ElasticNet(alpha=1.0, l1_ratio=0.3)   # 修改参数,进行对比
reg.fit(X, y)
ElasticNet(alpha=1.0, copy_X=True, fit_intercept=True, l1_ratio=0.3,max_iter=1000, normalize=False, positive=False, precompute=False,random_state=None, selection='cyclic', tol=0.0001, warm_start=False)
reg.predict([[6]])
reg.coef_
reg.intercept_
ElasticNet(alpha=1.0, copy_X=True, fit_intercept=True, l1_ratio=0.3,max_iter=1000, normalize=False, positive=False, precompute=False,random_state=None, selection='cyclic', tol=0.0001, warm_start=False)ElasticNet(alpha=1.0, copy_X=True, fit_intercept=True, l1_ratio=0.3,max_iter=1000, normalize=False, positive=False, precompute=False,random_state=None, selection='cyclic', tol=0.0001, warm_start=False)array([1.56834532])
array([0.13669065])
0.748201438848921
#利用IRIS数据集进行弹性网络回归
import pandas  as pd
import numpy  as np
from sklearn.datasets import load_iris
from sklearn import linear_model
from sklearn import metrics
#导入IRIS数据集
iris = load_iris() #特征矩阵
X=iris.data #目标向量
y=iris.target
from sklearn.cross_validation import train_test_split #导入数据划分包
#以20%的数据构建测试样本,剩余作为训练样本
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.20,random_state =1)
elastic= linear_model.ElasticNet(alpha=0.1,l1_ratio=0.5)  # 设置lambda值,l1_ratio值
elastic.fit(X_train,y_train)  #使用训练数据进行参数求解
y_hat2 = elastic.predict(X_test)  #对测试集的预测
print ("RMSE:", np.sqrt(metrics.mean_squared_error(y_test, y_hat2)))  #计算RMSE
ElasticNet(alpha=0.1, copy_X=True, fit_intercept=True, l1_ratio=0.5,max_iter=1000, normalize=False, positive=False, precompute=False,random_state=None, selection='cyclic', tol=0.0001, warm_start=False)RMSE: 0.25040264500501913

线性回归(五)---弹性网络回归相关推荐

  1. MADlib——基于SQL的数据挖掘解决方案(16)——回归之弹性网络回归

    一.弹性网络回归简介 要想理解弹性网络(Elastic Net)回归,正则化是必须要首先知道的,其次是岭回归和Lasso回归,知道了这些,弹性网络回归自然也就明白了. 1.  正则化 假设利用最小二乘 ...

  2. 机器学习算法系列(六)- 弹性网络回归算法(Elastic Net Regression Algorithm)

    阅读本文需要的背景知识点:岭回归.Lasso回归.一点点编程知识 最近笔者做了一个基于人工智能实现音乐转谱和人声分离功能的在线应用--反谱(Serocs),感兴趣的读者欢迎试用与分享,感谢您的支持!s ...

  3. 岭回归,Lasso回归及弹性网络回归原理及R实现

    在线性大型数据集包含的变量数量大于样本数量的情况下,标准线性模型(或普通的最小二乘法)的效果较差. 更好的替代方法是``惩罚回归'',可以通过在方程中添加约束来创建线性惩罚模型,该模型因变量过多而受到 ...

  4. php-ml 逻辑回归,TensorFlow ML cookbook 第三章6-8节 套索和岭回归、弹性网络回归and Logistic回归...

    问题导读: 1.如何实现套索和岭回归? 2.如何实现弹性网络回归? 3.如何实施Logistic回归? 4.如何理解将线性回归转化为二元分类? 上一篇:TensorFlow ML cookbook 第 ...

  5. 线性回归、lasso回归、岭回归以及弹性网络的系统解释

    线性回归.lasso回归.岭回归以及弹性网络的系统解释 声明 背景介绍 概述 线性回归模型函数及损失函数 线性回归算法 多项式回归(线性回归的推广) 广义线性回归(线性回归的推广) 岭回归(Ridge ...

  6. 机器学习(七)线性回归与岭回归Lasso回归与弹性网络与正则化

    机器学习(七) 线性回归 最小二乘法(Least Squares Method,简记为LSE)是一个比较古老的方法,源于天文学和测地学上的应用需要.在早期数理统计方法的发展中,这两门科学起了很大的作用 ...

  7. 正则化的岭回归、套索回归以及弹性网络

    文章目录 一.简介 二.岭回归 2.1 简介 2.2 岭回归成本函数 2.3 模型训练方法 三.Lasso回归 3.1 简介 3.2 Lasso回归成本函数 3.2 Lasso回归次梯度向量 3.3 ...

  8. 高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据...

    原文链接:http://tecdat.cn/?p=23378 1 介绍 在本文中,我们将研究以下主题 证明为什么低维预测模型在高维中会失败. 进行主成分回归(PCR). 使用glmnet()进行岭回归 ...

  9. R语言glmnet交叉验证选择(alpha、lambda)拟合最优elastic回归模型:弹性网络(elasticNet)模型选择最优的alpha值、模型最优的lambda值,最终模型的拟合与评估

    R语言glmnet交叉验证选择(alpha参数和lambda参数)拟合最优elastic回归模型:弹性网络(elasticNet)模型选择最优的alpha值.弹性网络(elasticNet)模型最优的 ...

最新文章

  1. python爬网页数据用什么_初学者如何用“python爬虫”技术抓取网页数据?
  2. Play自动生成的项目目录简介
  3. js跟随鼠标移动的写法
  4. oracle中的listener.ora和tnsnames.ora
  5. 最新数据分析与商业智能趋势前瞻
  6. do matlab的 while循环_除了Matlab,基本上所有的语言都有do-while语句吧?的相关推荐_ChinaUnix论坛...
  7. WWDC心愿单:新版OS X或将有这些变化
  8. 8种妙招,公众号实现吸粉引流
  9. Python编程案例:中文金额转换并计算
  10. li标签中,img居中显示
  11. 【UE4_蓝图】map函数以及Clamped和Unclamped的区别
  12. sequence、sequencer等
  13. Android APT不能自动生成文件
  14. 2022年执法资格刑侦执法考试多选题专项训练题及答案
  15. Qt 设置Excel单元格文本属性
  16. 黑群晖给局域网电脑发消息_笔记本黑群晖实现局域网网络唤醒
  17. python最大公约数算法流程图,Python 最大公约数算法
  18. 团队管理4 | 技术管理如何兼顾技术
  19. mac 终端上运行NPM INSTALL时出现问题:npm error!cb() 从未调用过!解决了
  20. 电脑连不上手机热点了

热门文章

  1. Java基础学习总结(65)——Java中的String,StringBuilder和StringBuffer比较
  2. Java基础学习总结(38)——Lombok(消除冗长的 java 代码)的使用和原理及安装、入门使用
  3. Python实现十大经典排序算法
  4. mysql 列很多_MySQL:多个表还是一个表有很多列?
  5. 「小程序JAVA实战」小程序 loading 提示框与页面跳转(37)
  6. dockerfile 创建自定义的tomcat服务
  7. Mifare l卡特性简介
  8. windows 安装mysql的时候最后执行一直停留在Write configuration file
  9. sem_wait sem_post信号量操作进本函数
  10. Josephus 线段数版