多任务带交叉验证的弹性网络回归(MultiTaskElasticNetCV)使用文档
组件名称 | 多任务带交叉验证的弹性网络回归(MultiTaskElasticNetCV) | ||
---|---|---|---|
工具集 | 机器学习/回归/多任务带交叉验证的弹性网络回归(MultiTaskElasticNetCV) | ||
组件作者 | 雪浪云-燕青 | ||
文档版本 | 1.0 | ||
功能 | 多任务带交叉验证的弹性网络回归(MultiTaskElasticNetCV)算法 | ||
镜像名称 | ml_components:3 | ||
开发语言 | Python |
组件原理
多任务学习(Multi-task learning)是和单任务学习(single-task learning)相对的一种机器学习方法。在机器学习领域,标准的算法理论是一次学习一个任务,也就是系统的输出为实数的情况。复杂的学习问题先被分解成理论上独立的子问题,然后分别对每个子问题进行学习,最后通过对子问题学习结果的组合建立复杂问题的数学模型。多任务学习是一种联合学习,多个任务并行学习,结果相互影响。所谓多任务学习,就是同时求解多个问题。个性化问题就是一种典型的多任务学习问题,它同时学习多个用户的兴趣偏好
交叉验证,有的时候也称作循环估计(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模型
- 功能描述: 输出训练好的模型用于预测
参数配置
alphas
- 功能描述:乘以惩罚项的常数列表,用于交叉验证选择参数
- 必选参数:是
- 默认值:1
L1 Ratio
- 功能描述:弹性网混合参数,应该在0,1之间。
- 必选参数:是
- 默认值:0.5
eps
- 功能描述:步长。
- 必选参数:是
- 默认值:0.001
n_alphas
- 功能描述:alphas的长度
- 必选参数:是
- 默认值:100
Fit Intercept
- 功能描述:是否应该计算截距。
- 必选参数:是
- 默认值:true
normalize
- 功能描述:当fit_intercept设置为False时,将忽略该参数。若为真,则回归前对回归量X进行归一化处理,取均值减去后除以l2-范数。
- 必选参数:是
- 默认值:false
Max Iter
- 功能描述:最大迭代次数。
- 必选参数:是
- 默认值:1000
tol
- 功能描述:优化器的容忍度。
- 必选参数:是
- 默认值:0.0001
cv
- 功能描述:确定交叉验证分割策略。
- 必选参数:是
- 默认值:3
Copy X
- 功能描述:如果为真,则复制X;否则,它可能被覆盖。
- 必选参数:是
- 默认值:true
Random State
- 功能描述:随机种子。
- 必选参数:否
- 默认值:(无)
selection
- 功能描述:如果设置为“随机”,则每次迭代都会更新一个随机系数,而不是默认情况下按顺序遍历特性。
- 必选参数:是
- 默认值:cyclic
需要训练
- 功能描述:该模型是否需要训练,默认为需要训练。
- 必选参数:是
- 默认值:true
特征字段
- 功能描述:特征字段
- 必选参数:是
- 默认值:(无)
识别字段
- 功能描述:识别字段
- 必选参数:是
- 默认值:(无)
使用方法
- 将组件拖入到项目中
- 与前一个组件输出的端口连接(必须是csv类型)
- 点击运行该节点
测试用例
模板
右面板配置
查看结果