跳到主要内容

多任务带交叉验证的Lasso回归(MultiTaskLassoCV)使用文档

组件名称多任务带交叉验证的Lasso回归(MultiTaskLassoCV)
工具集机器学习/回归/多任务带交叉验证的Lasso回归(MultiTaskLassoCV)
组件作者雪浪云-燕青
文档版本1.0
功能多任务带交叉验证的Lasso回归(MultiTaskLassoCV)算法
镜像名称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),以此来做为评价分类器的性能指标。

LARS(Least Angle Regression)即最小角回归,作为Forward Stepwise(向前逐步回归)的升级版,LARS是每次先找出和因变量相关度最高的那个变量,在已经入选的变量中,寻找一个新的路径,使得在这个路径上前进时,当前残差与已入选变量的相关系数都是相同的,直到找出新的比当前残差相关系数最大的变量。从几何上来看,当前残差在那些已选入回归集的变量们所构成的空间中的投影,是这些变量的角平分线。

Lasso(least absolute shrinkage and selection operator)线性回归的L1正则化通常称为Lasso回归,一般来说,对于高维的特征数据,尤其线性关系是稀疏的,我们会采用Lasso回归。或者是要在一堆特征里面找出主要的特征,那么Lasso回归更是首选了。Lasso回归的损失函数优化方法常用的有两种,坐标轴下降法和最小角回归法。Lasso类采用的是坐标轴下降法,后面讲到的LassoLars模型采用的是最小角回归法。

输入桩

支持单个csv文件输入。

输入端子1

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

输出桩

支持sklearn模型输出。

输出端子1

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

参数配置

eps

  • 功能描述:路径长度
  • 必选参数:是
  • 默认值:0.001

alpha数量

  • 功能描述:沿正则化路径的alpha数量
  • 必选参数:是
  • 默认值:100

alphas

  • 功能描述:乘以L1项的常数,本参数为alpha参数组成的数组,例如0.1,0.01
  • 必选参数:是
  • 默认值:0.1,0.1

Fit Intercept

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

是否进行归一化

  • 功能描述:是否对数据进行归一化处理,该参数在Fit Intercept参数设为False时会被忽略。
  • 必选参数:是
  • 默认值:false

precompute

  • 功能描述:是否使用预先计算好的Gram矩阵来加速计算。
  • 必选参数:是
  • 默认值:auto

最大迭代次数

  • 功能描述:模型训练时的最大迭代次数,默认为1000
  • 必选参数:是
  • 默认值:1000

tol

  • 功能描述:优化的容差
  • 必选参数:是
  • 默认值:0.0001

cv

  • 功能描述:交叉验证拆分数量l
  • 必选参数:是
  • 默认值:5

并行度

  • 功能描述:交叉验证时使用的CPU核数
  • 必选参数:否
  • 默认值:(无)

positive

  • 功能描述:若设为True,则将系数强制转换为正
  • 必选参数:是
  • 默认值:false

Random State

  • 功能描述:伪随机数发生器的种子
  • 必选参数:否
  • 默认值:(无)

selection

  • 功能描述:选择不同遍历模式
  • 必选参数:是
  • 默认值:cyclic

需要训练

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

特征字段

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

识别字段

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

使用方法

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

测试用例

  • 模板

  • 右面板参数

  • 查看结果