主要内容

RegressionLinear类

高维数据的线性回归模型

描述

RegressionLinear是用于回归的训练线性模型对象;线性模型是支持向量机回归(SVM)或线性回归模型。fitrlinear符合一个RegressionLinear通过使用减少高维数据集计算时间的技术(例如,随机梯度下降)最小化目标函数来建模。回归损失加上正则化项构成目标函数。

与其他回归模型不同,为了节省内存使用,RegressionLinear模型对象不存储训练数据。然而,它们确实存储了,例如估计的线性模型系数、估计的系数和正则化强度。

你可以用训练有素RegressionLinear预测新数据响应的模型。详细信息请参见预测

建设

创建一个RegressionLinear对象,使用fitrlinear

属性

全部展开

线性回归性质

不敏感波带宽度的一半,指定为非负标量。

如果学习者不是“支持向量机”,然后ε是一个空数组([]).

数据类型:|

正则化术语强度,指定为非负标量或非负值的向量。

数据类型:|

线性回归模型类型,指定为“leastsquares”“支持向量机”

在这个表格中, f x x β + b

  • β的向量p系数。

  • x是来自p预测变量。

  • b是标量偏置。

价值 算法 损失函数 FittedLoss价值
“支持向量机” 支持向量机回归 ε不敏感: y f x 马克斯 0 | y f x | ε “epsiloninsensitive”
“leastsquares” 通过普通最小二乘进行线性回归 均方误差(MSE): y f x 1 2 y f x 2 mse的

线性系数估计,指定为长度等于预测因子数量的数值向量。

数据类型:

估计偏置项或模型截距,指定为数值标量。

数据类型:

用于拟合模型的损失函数,指定为“epsiloninsensitive”mse的

价值 算法 损失函数 学习者价值
“epsiloninsensitive” 支持向量机回归 ε不敏感: y f x 马克斯 0 | y f x | ε “支持向量机”
mse的 通过普通最小二乘进行线性回归 均方误差(MSE): y f x 1 2 y f x 2 “leastsquares”

复杂度惩罚类型,指定为“套索(L1)”“岭(L2)”

该软件从平均损失函数的和组成最小化的目标函数(见FittedLoss)和这个表中的正则化值。

价值 描述
“套索(L1)” 套索(l1)罚款: λ j 1 p | β j |
“岭(L2)” 脊(l2)罚款: λ 2 j 1 p β j 2

λ指定正则化术语强度(请参阅λ).

该软件排除偏差项(β0)从正规化惩罚。

其他回归属性

分类预测指标,指定为正整数向量。CategoricalPredictors包含指示相应预测符是分类的索引值。索引值在1和之间p,在那里p用于训练模型的预测器的数量。如果没有一个预测符是分类的,则此属性为空([]).

数据类型:|

用于训练的参数RegressionLinear模型,指定为结构。

访问字段ModelParameters使用点表示法。例如,通过使用获取线性系数和偏置项的相对公差Mdl.ModelParameters.BetaTolerance

数据类型:结构体

预测器名称按其在预测器数据中的出现顺序排列,作为字符向量的单元格数组指定。的长度PredictorNames等于训练数据中变量的数量X资源描述用作预测变量。

数据类型:细胞

扩展的预测器名称,指定为字符向量的单元格数组。

如果模型对分类变量使用编码,则ExpandedPredictorNames包括描述展开变量的名称。否则,ExpandedPredictorNamesPredictorNames

数据类型:细胞

响应变量名,指定为字符向量。

数据类型:字符

响应转换函数,指定为“没有”或者一个函数句柄。ResponseTransform描述软件如何转换原始响应值。

对于MATLAB®函数或您定义的函数,输入其函数句柄。例如,输入Mdl。ResponseTransform = @函数,在那里函数接受原始响应的数字向量,并返回包含已转换响应的相同大小的数字向量。

数据类型:字符|function_handle

对象的功能

incrementalLearner 将线性回归模型转化为增量学习器
石灰 局部可解释模型不可知解释(LIME)
损失 线性回归模型的回归损失
partialDependence 计算部分依赖关系
plotPartialDependence 创建部分依赖图(PDP)和个别条件期望图(ICE)
预测 预测线性回归模型的响应
selectModels 选择拟合的正则化线性回归模型
沙普利 沙普利值
更新 更新用于代码生成的模型参数

复制语义

价值。要了解值类如何影响复制操作,请参见复制对象

例子

全部折叠

使用SVM、双SGD和山脊正则化训练线性回归模型。

从这个模型中模拟10000个观测值

y x 1 0 0 + 2 x 2 0 0 + e

  • X x 1 x 1 0 0 0 是一个10000 × 1000的稀疏矩阵,其中10%为非零标准正规元素。

  • e均值为0,标准差为0.3的随机正态误差。

rng (1)%用于再现性N = 1e4;D = 1e3;Nz = 0.1;X = sprandn(n,d,nz);Y = X(:,100) + 2*X(:,200) + 0.3*randn(n,1);

训练一个线性回归模型。默认情况下,fitrlinear采用带山脊惩罚的支持向量机,并使用双SGD优化支持向量机。通过提取拟合摘要来确定优化算法对模型与数据的拟合程度。

[Mdl,FitInfo] = fitrlinear(X,Y)
Mdl = RegressionLinear ResponseName: 'Y' ResponseTransform: 'none' Beta: [1000x1 double]偏差:-0.0056 Lambda: 1.0000 -04学习者:'svm'属性,方法
FitInfo =带字段的结构:Lambda: 1.0000e-04目标:0.2725 PassLimit: 10 NumPasses: 10 BatchLimit: [] NumIterations: 100000 GradientNorm: NaN GradientTolerance: 0 RelativeChangeInBeta: 0.4907 BetaTolerance: 1.0000e-04 DeltaGradient: 1.5816 DeltaGradientTolerance: 0.1000 TerminationCode: 0 TerminationStatus:{'迭代限制超过。'} Alpha: [10000x1 double]历史记录:[]FitTime: 0.0324求解器:{'dual'}

Mdl是一个RegressionLinear模型。你可以通过Mdl而训练或新的数据损失检验样本内均方误差。或者,你可以通过Mdl新的预测数据预测预测对新观测结果的反应。

FitInfo是一个结构数组,其中包含终止状态(TerminationStatus),以及求解器将模型与数据拟合所需的时间(FitTime).这是一个很好的实践FitInfo确定优化终止测量是否令人满意。在这种情况下,fitrlinear达到最大迭代次数。因为训练时间很快,所以可以重新训练模型,但要增加数据的遍历次数。或者,尝试其他求解器,如LBFGS。

从这个模型中模拟10000个观测值

y x 1 0 0 + 2 x 2 0 0 + e

  • X x 1 x 1 0 0 0 是一个10000 × 1000的稀疏矩阵,其中10%为非零标准正规元素。

  • e均值为0,标准差为0.3的随机正态误差。

rng (1)%用于再现性N = 1e4;D = 1e3;Nz = 0.1;X = sprandn(n,d,nz);Y = X(:,100) + 2*X(:,200) + 0.3*randn(n,1);

保留5%的数据。

rng (1);%用于再现性CVP = cvpartition(n,“坚持”, 0.05)
cvp =保留交叉验证分区NumObservations: 10000 NumTestSets: 1 TrainSize: 9500 TestSize: 500

本量利是一个CVPartition对象的随机分区n数据进入训练集和测试集。

使用训练集训练线性回归模型。为了更快的训练时间,定向预测器数据矩阵,使观察结果列。

idxTrain =训练(cvp);提取训练集指标X = X';Mdl = fitrlinear(X(:,idxTrain),Y(idxTrain),“ObservationsIn”“列”);

预测样本的观测值和均方误差(MSE)。

idxTest = test(cvp);提取测试集索引yHat = predict(Mdl,X(:,idxTest),“ObservationsIn”“列”);L = loss(Mdl,X(:,idxTest),Y(idxTest),“ObservationsIn”“列”
L = 0.1851

保留样本MSE为0.1852。

扩展功能

版本历史

在R2016a中引入

Baidu
map