语法:

 ElasticNet(self, alpha=1.0, l1_ratio=0.5, fit_intercept=True, normalize=False, precompute=False, max_iter=1000, copy_X=True, tol=1e-4, warm_start=False, positive=False, random_state=None, selection=’cyclic’)

类型:

 sklearn.linear_model.coordinate_descent 中的类,使用L1和L2组合作为正则项的线性回归。最小化目标函数为

 
1(2∗nsamples)||y−Xw||22+α∗l1_ratio∗||w||1+0.5∗ alpha∗(1−l1_ratio)∗||w||221(2∗nsamples)||y−Xw||22+α∗l1_ratio∗||w||1+0.5∗ alpha∗(1−l1_ratio)∗||w||22

 如果关注L1和L2惩罚项的分类,记住下面的公式:

 
a=L1+b∗L2a=L1+b∗L2

 这里:

 
α=a+bl1_ratio=a/(a+b)α=a+bl1_ratio=a/(a+b)

 这里参数l1_ratio对用R中的glmnet包中的αα

,αα

对用R中的λλ

,特别的,l1_ratio = 1 是lasso惩罚,当前l1_ratio≤0.01l1_ratio≤0.01

是不可靠的,除非你使用自己定义的alpha序列。

 在用户指南中读取更多。

输入参数:

  • 参数名:alpha
  • 类型:float, optional
  • 说明:混合惩罚项的常数,morning是1,看笔记的得到有关这个参数的精确数学定义。alpha = 0等价于传统最小二乘回归,通过LinearRegression求解。因为数学原因,使用alpha = 0的lasso回归时不推荐的,如果是这样,你应该使用 LinearRegression 。*

  • 参数名:l1_ratio
  • 类型:float
  • 说明:弹性网混合参数,0 <= l1_ratio <= 1,对于 l1_ratio = 0,惩罚项是L2正则惩罚。对于 l1_ratio = 1是L1正则惩罚。对于 0

属性

  • 参数名:coef_
  • 类型:array, shape (n_features,) | (n_targets, n_features)
  • 说明:参数向量(损失函数表达式中的ww

    )


  • 参数名:sparse_coef_
  • 类型:scipy.sparse matrix, shape (n_features, 1) | (n_targets, n_features)
  • 说明:sparse_coef_ 是从coef_ 导出的只读属性

  • 参数名:intercept_
  • 类型:float | array, shape (n_targets,)
  • 说明:决策函数中的独立项,即截距

  • 参数名:n_iter_
  • 类型:array-like, shape (n_targets,)
  • 说明:由坐标下降求解器运行的,达到指定公差的迭代次数。

实例:

#导入弹性网
from sklearn.linear_model import ElasticNet
from sklearn.datasets import make_regression # 初始化数据,模拟数据
X, y = make_regression(n_features=2, random_state=0)
# 实例化弹性网类,设定随机种子,保证每次计算结果都相同
regr = ElasticNet(random_state=0)
# 训练弹性网
regr.fit(X, y)
# 打印系数,结果是[ 18.83816048 64.55968825]
print(regr.coef_)
# 打印截距,结果是1.45126075617
print(regr.intercept_)
# 打印预测值,结果是[ 1.45126076]
print(regr.predict([[0, 0]]))
 

 为了避免不必要的内存复制,应该将fit方法的X参数直接作为一个fortranguous numpy数组传递

参阅

  • SGDRegressor:采用增量式培训实现弹性净回归。
  • SGDClassifier:用弹性网惩罚实现逻辑回归。
  • (SGDClassifier(loss=”log”, penalty=”elasticnet”)).

sklearn中的弹性网函数 ElasticNet的更多相关文章

  1. sklearn中,数据集划分函数 StratifiedShuffleSplit.split() 使用踩坑

    在SKLearn中,StratifiedShuffleSplit 类实现了对数据集进行洗牌.分割的功能.但在今晚的实际使用中,发现该类及其方法split()仅能够对二分类样本有效. 一个简单的例子如下 ...

  2. sklearn中预测模型的score函数

    sklearn.linear_model.LinearRegression.score score(self, X, y, sample_weight=None) Returns the coeffi ...

  3. sklearn中的模型评估-构建评估函数

    1.介绍 有三种不同的方法来评估一个模型的预测质量: estimator的score方法:sklearn中的estimator都具有一个score方法,它提供了一个缺省的评估法则来解决问题. Scor ...

  4. sklearn中的metrics模块中的Classification metrics

    metrics是sklearn用来做模型评估的重要模块,提供了各种评估度量,现在自己整理如下: 一.通用的用法:Common cases: predefined values 1.1 sklearn官 ...

  5. (数据科学学习手札25)sklearn中的特征选择相关功能

    一.简介 在现实的机器学习任务中,自变量往往数量众多,且类型可能由连续型(continuou)和离散型(discrete)混杂组成,因此出于节约计算成本.精简模型.增强模型的泛化性能等角度考虑,我们常 ...

  6. 标准方程法_岭回归_LASSO算法_弹性网

    程序所用文件:https://files.cnblogs.com/files/henuliulei/%E5%9B%9E%E5%BD%92%E5%88%86%E7%B1%BB%E6%95%B0%E6%8 ...

  7. sklearn中SVM调参说明

    写在前面 之前只停留在理论上,没有实际沉下心去调参,实际去做了后,发现调参是个大工程(玄学).于是这篇来总结一下sklearn中svm的参数说明以及调参经验.方便以后查询和回忆. 常用核函数 1.li ...

  8. Delphi 中DataSnap技术网摘

    Delphi2010中DataSnap技术网摘 一.为DataSnap系统服务程序添加描述 这几天一直在研究Delphi 2010的DataSnap,感觉功能真是很强大,现在足有理由证明Delphi7 ...

  9. 文本数据预处理:sklearn 中 CountVectorizer、TfidfTransformer 和 TfidfVectorizer

    文本数据预处理的第一步通常是进行分词,分词后会进行向量化的操作.在介绍向量化之前,我们先来了解下词袋模型. 1.词袋模型(Bag of words,简称 BoW ) 词袋模型假设我们不考虑文本中词与词 ...

随机推荐

  1. ORA-01790 错误处理 SQL同一数据库中,两个查询结果数据类型不同时的union all 合

    转自: 出现这种错误,要先看一下是不是sql中有用到连接:union,unio all之类的,如果有,需要注意相同名称字段的数据类型一定要相同. 所以在union 或者union all 的时候造成了 ...

  2. STM8 uart1

    举例 int main() { UART1_DeInit(); //波特率9600,数据位8,停止位1,校验位无,非同步模式,发送接收使能 UART1_Init(9600, UART1_WORDLEN ...

  3. springboot2集成swagger2出现guava包下的FluentIterable.append方法找不到

    加入依赖 <!-- https://mvnrepository.com/artifact/com.google.guava/guava --> <dependency> < ...

  4. 【appium】踩过的坑

    1.appium(v1.9.1),在模拟器(蓝叠)上启动app时,软件闪退. 在命令行使用dump aapt dump badging查看包时 name=com.imooc.component.imo ...

  5. Powershell-常用脚本

    function Test-Port { Param([string]$ComputerName,$port = 5985,$timeout = 1000) try { $tcpclient = Ne ...

  6. Django 使用form组件对文件上传

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 【OF框架】使用OF框架创建应用项目

    开始:准备工作 开发环境已经安装Visual Studio,包含Web开发负载.Python开发负载.NodeJs开发负载 开发环境已经安装Visual Studio Code 开发环境已经安装Nod ...

  8. CentOS7下Yum安装Redis并配置主从

    原文 :https://blog.51cto.com/11134648/2158209 Redis简介: Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库.它通常被 ...

  9. 使用ESP8266制作一个微型气象站

    本文主要介绍如何制作一个微型气象站. 这个想法和大部分代码来自Daniel Eichhorn在这个网址上的博客,可以去看看,这里面有一些很酷的东西! http://blog.squix.ch/2015 ...

  10. vue-cli 安装使用

    全局安装vue-cli,使用命令npm install -g vue-cli. 下载模板代码,使用命令vue init webpack my-project,之后会有一些询问,按需填写即可. 最后会看 ...