跳到主要内容

带交叉验证的弹性网络回归(ElasticNetCV)使用文档

组件名称带交叉验证的弹性网络回归(ElasticNetCV)
工具集机器学习
组件作者雪浪云-墨文
文档版本1.0
功能带交叉验证的弹性网络回归(ElasticNetCV)算法
镜像名称ml_components:3
开发语言Python

组件原理

交叉验证,有的时候也称作循环估计(Rotation Estimation),是一种统计学上将数据样本切割成较小子集的实用方法,该理论是由Seymour Geisser提出的。在给定的建模样本中,拿出大部分样本进行建模型,留小部分样本用刚建立的模型进行预报,并求这小部分样本的预报误差,记录它们的平方加和。这个过程一直进行,直到所有的样本都被预报了一次而且仅被预报一次。把每个样本的预报误差平方加和,称为PRESS(predicted Error Sum of Squares)。

交叉验证的基本思想是把在某种意义下将原始数据(dataset)进行分组,一部分做为训练集(train set),另一部分做为验证集(validation set or test set)。首先用训练集对分类器进行训练,再利用验证集来测试训练得到的模型(model),以此来做为评价分类器的性能指标。

在统计学中,特别是在线性或逻辑回归模型的拟合中,弹性网络是一种正则化的回归方法,它将L1和L2惩罚值线性组合起来。

弹性网最初是由于对lasso的批评而出现的,lasso的变量选择可能过于依赖于数据,因此不稳定。解决方案是结合岭回归和lasso的惩罚项,以得到最好的模型。弹性网络的目标是使以下损失函数最小化:

现在,有两个参数需要调优:λ和α。

输入桩

支持单个csv文件输入。

输入端子1

  • 端口名称:训练数据
  • 输入类型:Csv文件
  • 功能描述: 输入用于训练的数据

输出桩

支持sklearn模型输出。

输出端子1

  • 端口名称:输出模型
  • 输出类型:sklearn模型
  • 功能描述: 输出训练好的模型用于预测

参数配置

L1 Ratio

  • 功能描述:弹性网混合参数,应该在0,1之间。
  • 必选参数:是
  • 默认值:0.5

eps

  • 功能描述:步长。
  • 必选参数:是
  • 默认值:0.001

nAlphas

  • 功能描述:沿着正则化路径的alpha个数,用于每个l1_ratio。
  • 必选参数:是
  • 默认值:100

Fit Intercept

  • 功能描述:是否应该计算截距。
  • 必选参数:是
  • 默认值:true

normalize

  • 功能描述:当fit_intercept设置为False时,将忽略该参数。若为真,则回归前对回归量X进行归一化处理,取均值减去后除以l2-范数。
  • 必选参数:是
  • 默认值:false

Max Iter

  • 功能描述:最大迭代次数。
  • 必选参数:是
  • 默认值:1000

tol

  • 功能描述:优化器的容忍度。
  • 必选参数:是
  • 默认值:0.0001

cv

  • 功能描述:确定交叉验证分割策略。
  • 必选参数:是
  • 默认值:3

Copy X

  • 功能描述:如果为真,则复制X;否则,它可能被覆盖。
  • 必选参数:是
  • 默认值:true

verbose

  • 功能描述:是否输出日志。
  • 必选参数:是
  • 默认值:true

nJobs

  • 功能描述:交叉验证期间使用的cpu数量。
  • 必选参数:否
  • 默认值:(无)

Random State

  • 功能描述:随机种子。
  • 必选参数:否
  • 默认值:(无)

selection

  • 功能描述:如果设置为“随机”,则每次迭代都会更新一个随机系数,而不是默认情况下按顺序遍历特性。
  • 必选参数:是
  • 默认值:cyclic

需要训练

  • 功能描述:该模型是否需要训练,默认为需要训练。
  • 必选参数:是
  • 默认值:true

特征字段

  • 功能描述:特征字段
  • 必选参数:是
  • 默认值:(无)

识别字段

  • 功能描述:识别字段
  • 必选参数:是
  • 默认值:(无)

使用方法

  • 将组件拖入到项目中
  • 与前一个组件输出的端口连接(必须是csv类型)
  • 点击运行该节点