RegressionLinear类
高维数据的线性回归模型
描述
RegressionLinear
是用于回归的训练线性模型对象;线性模型是支持向量机回归(SVM)或线性回归模型。fitrlinear
符合一个RegressionLinear
通过使用减少高维数据集计算时间的技术(例如,随机梯度下降)最小化目标函数来建模。回归损失加上正则化项构成目标函数。
与其他回归模型不同,为了节省内存使用,RegressionLinear
模型对象不存储训练数据。然而,它们确实存储了,例如估计的线性模型系数、估计的系数和正则化强度。
你可以用训练有素RegressionLinear
预测新数据响应的模型。详细信息请参见预测
.
建设
创建一个RegressionLinear
对象,使用fitrlinear
.
属性
ε
- - - - - -不敏感带宽度的一半
负的标量
不敏感波带宽度的一半,指定为非负标量。
如果学习者
不是“支持向量机”
,然后ε
是一个空数组([]
).
数据类型:单
|双
λ
- - - - - -正则化项强度
负的标量|非负值的向量
正则化术语强度,指定为非负标量或非负值的向量。
数据类型:双
|单
学习者
- - - - - -线性回归模型类型
“leastsquares”
|“支持向量机”
线性回归模型类型,指定为“leastsquares”
或“支持向量机”
.
在这个表格中,
β的向量p系数。
x是来自p预测变量。
b是标量偏置。
价值 | 算法 | 损失函数 | FittedLoss 价值 |
---|---|---|---|
“支持向量机” |
支持向量机回归 | ε不敏感: | “epsiloninsensitive” |
“leastsquares” |
通过普通最小二乘进行线性回归 | 均方误差(MSE): | mse的 |
β
- - - - - -线性系数估计
数值向量
线性系数估计,指定为长度等于预测因子数量的数值向量。
数据类型:双
偏见
- - - - - -估计偏置项
数字标量
估计偏置项或模型截距,指定为数值标量。
数据类型:双
FittedLoss
- - - - - -采用损失函数拟合线性模型
“epsiloninsensitive”
|mse的
用于拟合模型的损失函数,指定为“epsiloninsensitive”
或mse的
.
价值 | 算法 | 损失函数 | 学习者 价值 |
---|---|---|---|
“epsiloninsensitive” |
支持向量机回归 | ε不敏感: | “支持向量机” |
mse的 |
通过普通最小二乘进行线性回归 | 均方误差(MSE): | “leastsquares” |
正则化
- - - - - -复杂性惩罚类型
“套索(L1)”
|“岭(L2)”
复杂度惩罚类型,指定为“套索(L1)”
或“岭(L2)”
.
该软件从平均损失函数的和组成最小化的目标函数(见FittedLoss
)和这个表中的正则化值。
价值 | 描述 |
---|---|
“套索(L1)” |
套索(l1)罚款: |
“岭(L2)” |
脊(l2)罚款: |
λ指定正则化术语强度(请参阅λ
).
该软件排除偏差项(β0)从正规化惩罚。
CategoricalPredictors
- - - - - -分类预测指标
正整数向量|[]
分类预测指标,指定为正整数向量。CategoricalPredictors
包含指示相应预测符是分类的索引值。索引值在1和之间p
,在那里p
用于训练模型的预测器的数量。如果没有一个预测符是分类的,则此属性为空([]
).
数据类型:单
|双
ModelParameters
- - - - - -用于训练模型的参数
结构
用于训练的参数RegressionLinear
模型,指定为结构。
访问字段ModelParameters
使用点表示法。例如,通过使用获取线性系数和偏置项的相对公差Mdl.ModelParameters.BetaTolerance
.
数据类型:结构体
PredictorNames
- - - - - -预测的名字
字符向量的单元格数组
预测器名称按其在预测器数据中的出现顺序排列,作为字符向量的单元格数组指定。的长度PredictorNames
等于训练数据中变量的数量X
或资源描述
用作预测变量。
数据类型:细胞
ExpandedPredictorNames
- - - - - -扩展的预测器名称
字符向量的单元格数组
扩展的预测器名称,指定为字符向量的单元格数组。
如果模型对分类变量使用编码,则ExpandedPredictorNames
包括描述展开变量的名称。否则,ExpandedPredictorNames
和PredictorNames
.
数据类型:细胞
ResponseName
- - - - - -响应变量名
特征向量
响应变量名,指定为字符向量。
数据类型:字符
ResponseTransform
- - - - - -响应变换函数
“没有”
|函数处理
响应转换函数,指定为“没有”
或者一个函数句柄。ResponseTransform
描述软件如何转换原始响应值。
对于MATLAB®函数或您定义的函数,输入其函数句柄。例如,输入Mdl。ResponseTransform = @函数
,在那里函数
接受原始响应的数字向量,并返回包含已转换响应的相同大小的数字向量。
数据类型:字符
|function_handle
对象的功能
incrementalLearner |
将线性回归模型转化为增量学习器 |
石灰 |
局部可解释模型不可知解释(LIME) |
损失 |
线性回归模型的回归损失 |
partialDependence |
计算部分依赖关系 |
plotPartialDependence |
创建部分依赖图(PDP)和个别条件期望图(ICE) |
预测 |
预测线性回归模型的响应 |
selectModels |
选择拟合的正则化线性回归模型 |
沙普利 |
沙普利值 |
更新 |
更新用于代码生成的模型参数 |
复制语义
价值。要了解值类如何影响复制操作,请参见复制对象.
例子
列车线性回归模型
使用SVM、双SGD和山脊正则化训练线性回归模型。
从这个模型中模拟10000个观测值
是一个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个观测值
是一个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。
扩展功能
C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。
使用注意事项和限制:
当你训练线性回归模型时使用
fitrlinear
,则适用以下限制。如果预测器数据输入参数值是一个矩阵,它必须是一个完整的数字矩阵。代码生成不支持稀疏数据。
您也只能指定一种正则化强度
“汽车”
或者一个非负标量“λ”
名称-值对参数。的值
“ResponseTransform”
名称-值对参数不能是匿名函数。使用编码器配置器生成的代码不支持分类预测器(
逻辑
,分类
,字符
,字符串
,或细胞
).您不能使用“CategoricalPredictors”
名称-值参数。若要在模型中包含分类预测器,请使用dummyvar
在拟合模型之前。
有关更多信息,请参见代码生成简介.
版本历史
在R2016a中引入
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。