主要内容

RegressionLinear类

高维数据的线性回归模型

描述

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

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

你可以用受训过的RegressionLinear预测新数据响应的模型。详情请参见预测

建设

创建一个RegressionLinear对象,使用fitrlinear

属性

全部展开

线性回归的性质

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

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

数据类型:|

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

数据类型:|

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

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

  • β是的向量p系数。

  • x是一个观察p预测变量。

  • b是标量偏差。

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

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

数据类型:

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

数据类型:

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

价值 算法 损失函数 学习者价值
“epsiloninsensitive” 金宝app支持向量机回归 ε不敏感: 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 选择拟合的正则化线性回归模型
沙普利 沙普利值
更新 更新模型参数以生成代码

复制语义

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

例子

全部折叠

训练线性回归模型使用支持向量机,双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 = 13;Nz = 0.1;X = sprandn(n,d,nz);Y = X(:,100) + 2*X(:,200) + 0.3*randn(n,1);

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

[Mdl,FitInfo] = fitrlinear(X,Y)
Mdl = RegressionLinear ResponseName: 'Y' ResponseTransform: 'none' Beta: [1000x1 double]偏差:-0.0056 Lambda: 1.0000e-04学习者:'svm'属性,方法
FitInfo =带有字段的结构:Lambda: 1.0000e-04 Objective: 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] History: [] FitTime: 0.0606 Solver: {'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 = 13;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 = hold out交叉验证分区NumObservations: 10000 NumTestSets: 1 TrainSize: 9500 TestSize: 500

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

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

idxTrain = training(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中介绍