对高维数据拟合线性回归模型
fitrlinear
高效地训练线性回归模型与高维,完整或稀疏预测数据。可用的线性回归模型包括正则化支持向量机(SVM)和最小二乘回归方法。金宝appfitrlinear
使用减少计算时间的技术(例如,随机梯度下降)最小化目标函数。
为了减少包含许多预测变量的高维数据集上的计算时间,可以使用fitrlinear
.有关低通过中维预测器数据集,请参见低维数据的替代方案.
使用表中的预测变量返回一个线性回归模型Mdl
= fitrlinear (资源描述
,ResponseVarName
)资源描述
响应值资源描述。ResponseVarName
.
[
参数时,还返回超参数优化细节Mdl
,FitInfo
,HyperparameterOptimizationResults
= fitrlinear(___)OptimizeHyperparameters
名称-值对。
使用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
采用带山脊金宝app惩罚的支持向量机,并使用双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.0606求解器:{'dual'}
Mdl
是一个RegressionLinear
模型。你可以通过Mdl
而训练或新的数据损失
检验样本内均方误差。或者,你可以通过Mdl
新的预测数据预测
预测对新观测结果的反应。
FitInfo
是一个结构数组,其中包含终止状态(TerminationStatus
),以及求解器将模型与数据拟合所需的时间(FitTime
).这是一个很好的实践FitInfo
确定优化终止测量是否令人满意。在这种情况下,fitrlinear
达到最大迭代次数。因为训练时间很快,所以可以重新训练模型,但要增加数据的遍历次数。或者,尝试其他求解器,如LBFGS。
为了确定使用最小二乘的线性回归模型的良好套索惩罚强度,实现5倍交叉验证。
从这个模型中模拟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);
创建一组15个对数间隔的正则化强度 通过 .
Lambda = logspace(-5,-1,15);
交叉验证模型。要提高执行速度,可以调换预测器数据,并指定观察值为列。利用SpaRSA对目标函数进行优化。
X = X';CVMdl = fitrlinear(X,Y,“ObservationsIn”,“列”,“KFold”5,“λ”λ,...“学习者”,“leastsquares”,“规划求解”,“sparsa”,“正规化”,“套索”);numCLModels = nummel (CVMdl.Trained)
numCLModels = 5
CVMdl
是一个RegressionPartitionedLinear
模型。因为fitrlinear
实现5倍交叉验证,CVMdl
包含5RegressionLinear
软件在每次折叠上训练的模型。
显示第一个训练好的线性回归模型。
Mdl1 = CVMdl。训练有素的{1}
Mdl1 = RegressionLinear ResponseName: 'Y' ResponseTransform: 'none' Beta: [1000x15 double]偏差:[-0.0049 -0.0049 -0.0049 -0.0049 -0.0048…[1.0000e-05 1.9307e-05 3.7276e-05 7.1969e-05…]学习者:'最小二乘'属性,方法
Mdl1
是一个RegressionLinear
模型对象。fitrlinear
构造Mdl1
通过训练前四层。因为λ
是一个正则化强度序列,你能想到吗Mdl1
作为15个模型,每一个正则化强度在其中λ
.
估计交叉验证的MSE。
mse = kfoldLoss(CVMdl);
较高的值λ
导致预测变量的稀疏性,这是回归模型的一个很好的品质。对于每个正则化强度,使用整个数据集和交叉验证模型时相同的选项训练线性回归模型。确定每个模型的非零系数的数量。
Mdl = fitrlinear(X,Y,“ObservationsIn”,“列”,“λ”λ,...“学习者”,“leastsquares”,“规划求解”,“sparsa”,“正规化”,“套索”);numNZCoeff = sum(Mdl.Beta~=0);
在同一图中,绘制每个正则化强度的交叉验证MSE和非零系数的频率。在对数尺度上画出所有变量。
figure [h,hL1,hL2] = plotyy(log10(Lambda),log10(mse),...log10(λ)log10 (numNZCoeff));hL1。标志=“o”;hL2。标志=“o”;ylabel (h (1),“log_ {10} MSE的) ylabel (h (2),'log_{10}非零系数频率')包含(“log_{10}λ的)举行从
选择正则化强度指数,以平衡预测变量稀疏性和低MSE(例如,λ(10)
).
idxFinal = 10;
提取最小均方误差对应的模型。
MdlFinal = selectModels(Mdl,idxFinal)
MdlFinal = RegressionLinear ResponseName: 'Y' ResponseTransform: 'none' Beta: [1000x1 double]偏差:-0.0050 Lambda: 0.0037学习者:'最小二乘'属性,方法
idxNZCoeff = find(MdlFinal.Beta~=0)
idxNZCoeff =2×1100 200
EstCoeff = Mdl.Beta(idxNZCoeff)
EstCoeff =2×11.0051 - 1.9965
MdlFinal
是一个RegressionLinear
具有一个正则化强度的模型。非零系数EstCoeff
接近模拟数据的系数。
这个例子展示了如何使用自动优化超参数fitrlinear
.该示例为模型使用了人工(模拟)数据
是一个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);
通过使用自动超参数优化找到最小化五倍交叉验证损失的超参数。
为了重现性,使用“expected-improvement-plus”
采集功能。
Hyperopts = struct(“AcquisitionFunctionName”,“expected-improvement-plus”);[Mdl,FitInfo,HyperparameterOptimizationResults] = fitrlinear(X,Y,...“OptimizeHyperparameters”,“汽车”,...“HyperparameterOptimizationOptions”hyperopts)
|=====================================================================================================| | Iter | Eval |目的:| |目的BestSoFar | BestSoFar |λ|学生| | | |结果日志(1 +损失)运行时| | | (estim(观察) .) | | | |=====================================================================================================| | 最好1 | | 0.16029 | 0.7907 | 0.16029 | 0.16029 | 2.4206 e-09 |支持向量机| | 2 |最好| 0.14496 | 0.63743 | 0.14496 | 0.14601 | 0.001807 |支持向量机| | 3 |最好| 0.13879 | 0.67527 | 0.13879 | 0.14065 | 2.4681 e-09 | leastsquares | | 4 |的| 0.115 | 0.55616 | 0.115 | 0.11501 |0.021027 | leastsquares | | 5 |接受| 0.44352 | 0.6156 | 0.115 | 0.1159 | 4.6795 | leastsquares | | 6 |的| 0.11025 | 0.63043 | 0.11025 | 0.11024 | 0.010671 | leastsquares | | | 7日接受| 0.13222 | 0.51473 | 0.11025 | 0.11024 | 8.6067 e-08 | leastsquares | | |接受8 | 0.13262 | 0.58507 | 0.11025 | 0.11023 | 8.5109 e-05 | leastsquares | | | 9日接受| 0.13543 | 0.62007 | 0.11025 | 0.11021 | 2.7562 e-06 | leastsquares | | |接受10 | 0.15751 | 0.61176 | 0.11025 | 0.11022 | 5.0559 e-06 |支持向量机| | | 11日接受| 0.40673 | 0.68834 | 0.11025 | 0.1102 | 0.52074 |支持向量机| | | 12日接受| 0.16057 | 0.80978 | 0.11025 | 0.1102 | 0.00014292 |支持向量机| | | 13日接受| 0.16105 | 0.58199 | 0.11025 | 0.11018 | 1.0079 e-07 |支持向量机| | | 14日接受| 0.12763 | 0.50879 | 0.11025 | 0.11019 | 0.0012085 | leastsquares | | |接受15 | 0.13504 | 0.48453 | 0.11025 | 0.11019 | 1.3981 e-08 | leastsquares | | | 16日接受| 0.11041 | 0.58515 | 0.11025 | 0.11026 | 0.0093968 | leastsquares | | 17 | | 0.10954 |最好0.59682 | 0.10954 | 0.11003 | 0.010393 | leastsquares | | | 18日接受| 0.10998 | 0.62937 | 0.10954 | 0.11002 | 0.010254 | leastsquares | | | 19日接受| 0.45314 | 0.50955 | 0.10954 | 0.11001 | 9.9932 |支持向量机| |最好20 | | 0.10753 | 0.60143 | 0.10753 | 0.10759 | 0.022576 |支持向量机 | |=====================================================================================================| | Iter | Eval |目的:| |目的BestSoFar | BestSoFar |λ|学生| | | |结果日志(1 +损失)运行时| | | (estim(观察) .) | | | |=====================================================================================================| | 21最好| | 0.10737 | 0.63705 | 0.10737 | 0.10728 | 0.010171 |支持向量机| | | 22日接受| 0.13448 | 0.65832 | 0.10737 | 0.10727 | 1.5344 e-05 | leastsquares | | 23最好| | 0.10645 | 0.73373 | 0.10645 | 0.10565 | 0.015495 |支持向量机| | | 24日接受| 0.13598 | 0.48257 | 0.10645 |0.10559 | 4.5984 e-07 | leastsquares | | | 25日接受| 0.15962 | 0.71824 | 0.10645 | 0.10556 | 1.4302 e-08 |支持向量机| | | 26日接受| 0.10689 | 0.77732 | 0.10645 | 0.10616 | 0.015391 |支持向量机| | | 27日接受| 0.13748 | 0.43259 | 0.10645 | 0.10614 | 1.001 e-09 | leastsquares | | | 28日接受| 0.10692 | 0.64502 | 0.10645 | 0.10639 | 0.015761 |支持向量机| | | 29日接受| 0.10681 | 0.66523 | 0.10645 | 0.10649 | 0.015777 |支持向量机| | | 30日接受| 0.34314 | 0.58592 | 0.10645 | 0.10651 | 0.39671 | leastsquares |
__________________________________________________________ 优化完成。最大目标达到30个。总函数评估:30总运行时间:46.3613秒总目标函数评估时间:18.569最佳观测可行点:Lambda Learner ________ _______ 0.015495 svm观测目标函数值= 0.10645估计目标函数值= 0.10651函数评估时间= 0.73373最佳估计可行点(根据模型):Lambda Learner ________ _______ 0.015777 svm估计目标函数值= 0.10651估计函数评估时间= 0.65559
Mdl = RegressionLinear ResponseName: 'Y' ResponseTransform: 'none' Beta: [1000x1 double]偏差:-0.0018 Lambda: 0.0158学习者:'svm'属性,方法
FitInfo =带字段的结构:Lambda: 0.0158目标:0.2309 PassLimit: 10 NumPasses: 10 BatchLimit: [] NumIterations: 99989 GradientNorm: NaN GradientTolerance: 0 RelativeChangeInBeta: 0.0641 BetaTolerance: 1.0000e-04 DeltaGradient: 1.1697 DeltaGradientTolerance: 0.1000 TerminationCode: 0 TerminationStatus:{'迭代限制超过。'} Alpha: [10000x1 double]历史记录:[]FitTime: 0.0681求解器:{'dual'}
HyperparameterOptimizationResults = BayesianOptimization with properties: ObjectiveFcn: @createObjFcn/inMemoryObjFcn variabledescription: [3x1 optimizableVariable] Options: [1x1 struct] MinObjective: 0.1065 XAtMinObjective: [1x2 table] minestimatedobjobjective: 0.1065 xatminestimatedobjobjective: [1x2 table] numobjectiveevalues: 30 TotalElapsedTime: 46.3613 NextPoint: [1x2 table] XTrace: [30x2 table] ObjectiveTrace: [30x1 double] ConstraintsTrace: [] UserDataTrace:{30x1 cell} ObjectiveEvaluationTimeTrace: [30x1 double] IterationTimeTrace: [30x1 double] ErrorTrace: [30x1 double]可行性trace: [30x1 logical]可行性probabilitytrace: [30x1 double] IndexOfMinimumTrace: [30x1 double] objectivminimumtrace: [30x1 double] estimatedobjectivminimumtrace: [30x1 double]
此优化技术比中所示的优化技术更简单使用交叉验证找到好的套索惩罚,但不允许您权衡模型复杂性和交叉验证损失。
X
- - - - - -预测数据预测器数据,指定为
的长度Y
观察的次数X
必须是相等的。
请注意
如果你定位你的预测矩阵,使观察结果与列相对应,并指定“ObservationsIn”、“列”
,那么优化执行时间可能会显著减少。
数据类型:单
|双
资源描述
- - - - - -样本数据用于训练模型的示例数据,指定为表。每行资源描述
对应一个观测值,每一列对应一个预测变量。可选地,资源描述
可以为响应变量包含一个额外的列。不允许使用字符向量的单元格数组以外的多列变量和单元格数组。
如果资源描述
包含响应变量,您希望在中使用所有剩余变量资源描述
作为预测器,然后通过使用指定响应变量ResponseVarName
.
如果资源描述
包含响应变量,并且您希望仅在中使用其余变量的子集资源描述
作为预测器,然后通过使用指定一个公式公式
.
如果资源描述
不包含响应变量,然后通过使用Y
.响应变量的长度和其中的行数资源描述
必须是相等的。
数据类型:表格
公式
- - - - - -响应变量的解释模型和预测变量的子集响应变量和预测变量子集的解释模型,在表单中指定为字符向量或字符串标量“Y ~ x1 + x2 + x3”
.在这种形式下,Y
表示响应变量,和x1
,x2
,x3
表示预测变量。
中指定变量的子集资源描述
使用公式作为训练模型的预测因子。如果您指定了一个公式,那么该软件不使用任何变量资源描述
没有出现在公式
.
公式中的变量名必须同时为资源描述
(Tbl.Properties.VariableNames
)和有效的MATLAB®标识符。中的变量名可以验证资源描述
通过使用isvarname
函数。变量名无效,则可以使用matlab.lang.makeValidName
函数。
数据类型:字符
|字符串
请注意
软件处理南
,空字符向量(”
,空字符串(""
),< >失踪
,<定义>
元素作为缺失值,并删除具有以下任何特征的观测值:
响应中缺少值(例如,Y
或ValidationData
{2}
)
在预测器观察中至少有一个缺失值(例如,行X
或ValidationData {1}
)
南
值或0
权重(例如,在权重
或ValidationData {3}
)
为了节省内存使用,最好的做法是在训练之前手动从训练数据中删除包含缺失值的观察值。
的可选逗号分隔对名称,值
参数。名字
参数名称和价值
对应的值。名字
必须出现在引号内。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家
.
Mdl = fitrlinear(X,Y,'Learner','leastsquares','CrossVal','on','Regularization','lasso')
指定实现最小二乘回归、实现10倍交叉验证,并指定包含套索正则化项。
请注意
方法时,不能使用任何交叉验证名称-值参数“OptimizeHyperparameters”
名称-值参数。您可以修改交叉验证“OptimizeHyperparameters”
只有使用“HyperparameterOptimizationOptions”
名称-值参数。
ε
- - - - - -不敏感带宽度的一半差(Y) / 13.49
(默认)|非负标量值不敏感频带宽度的一半,指定为由逗号分隔的对组成‘ε’
和一个非负标量值。‘ε’
仅适用于SVM学习器。
默认的ε
值是差(Y) / 13.49
,这是使用响应变量的四分位范围的标准差的估计值Y
.如果差(Y)
等于0,那么默认值是多少ε
值为0.1。
例子:‘ε’,0.3
数据类型:单
|双
λ
- - - - - -正则化项强度“汽车”
(默认)|负的标量|非负值的向量正则化术语的强度,指定为由逗号分隔的对组成“λ”
而且“汽车”
,一个非负的标量,或者一个非负的值的向量。
为“汽车”
,λ
= 1 /
如果指定了交叉验证、名值对参数(例如,CrossVal
),然后
否则,
对于一个非负值的向量,fitrlinear
中每个不同值依次优化目标函数λ
按升序排列。
例子:“λ”,10 ^ (- (10:2:2))
数据类型:字符
|字符串
|双
|单
学习者
- - - - - -线性回归模型类型“支持向量机”
(默认)|“leastsquares”
线性回归模型类型,指定为由逗号分隔的对组成“学习者”
而且“支持向量机”
或“leastsquares”
.
在这个表格中,
β的向量
x是来自
b是标量偏置。
价值 | 算法 | 响应范围 | 损失函数 |
---|---|---|---|
“leastsquares” |
用普通最小二乘进行线性回归 | y∊(-∞∞) | 均方误差(MSE): |
“支持向量机” |
金宝app支持向量机回归 | 一样“leastsquares” |
Epsilon-insensitive: |
例子:“学习者”,“leastsquares”
ObservationsIn
- - - - - -预测器数据观测维数“行”
(默认)|“列”
预测器数据观测维数,指定为“行”
或“列”
.
请注意
如果你定位你的预测矩阵,使观察结果与列相对应,并指定“ObservationsIn”、“列”
,那么您可能会经历计算时间的显著减少。你不能指定“ObservationsIn”、“列”
用于表中的预测器数据。
例子:“ObservationsIn”、“列”
数据类型:字符
|字符串
解算器
- - - - - -目标函数最小化技术“sgd”
|“asgd”
|“双重”
|“蓄热”
|“lbfgs”
|“sparsa”
|字符串数组|字符向量的单元格数组目标函数最小化技术,指定为逗号分隔对组成“规划求解”
一个字符向量或字符串标量,一个字符串数组,或一个单元格数组的字符向量的值从这个表。
价值 | 描述 | 限制 |
---|---|---|
“sgd” |
随机梯度下降(SGD)[5][3] | |
“asgd” |
平均随机梯度下降(ASGD)[8] | |
“双重” |
支持向量机的双SGD[2][7] | 正则化 必须“岭” 而且学习者 必须“支持向量机” . |
“蓄热” |
Broyden-Fletcher-Goldfarb-Shanno准牛顿算法(BFGS)[4] | 效率低下,如果X 是非常高维的。 |
“lbfgs” |
有限内存BFGS (LBFGS)[4] | 正则化 必须“岭” . |
“sparsa” |
基于可分离近似的稀疏重建[6] | 正则化 必须“套索” . |
如果你指定:
山脊惩罚(见正则化
),size(X,1) <= 100
(100个或更少的预测变量),则默认求解器为“蓄热”
.
支持向量机回归模型(见学习者
)、山脊惩罚,以及size(X,1) >
(超过100个预测变量),则默认解算器为“双重”
.
套索罚X
包含100个或更少的预测变量,则默认解算器为“sparsa”
.
否则,默认解算器为“sgd”
.
如果指定求解器名称的字符串数组或单元格数组,则λ
,软件采用求解器的解金宝搏官方网站
例子:{“sgd”“lbfgs”}
应用SGD求解目标,并将其作为LBFGS的热启动。
提示
SGD和ASGD能比其他求解器更快地求解目标函数,而LBFGS和SpaRSA能比其他求解器得到更精确的解。金宝搏官方网站求解器组合,比如{“sgd”“lbfgs”}
而且{“sgd”“sparsa”}
能够平衡优化速度和精度。
在SGD和ASGD之间进行选择时,请考虑:
SGD每次迭代花费更少的时间,但需要更多的迭代来收敛。
ASGD需要更少的迭代来收敛,但是每次迭代需要更多的时间。
如果预测数据是高维的正则化
是“岭”
,设置解算器
对这些组合中的任何一个:
“sgd”
“asgd”
“双重”
如果学习者
是“支持向量机”
“lbfgs”
{“sgd”、“lbfgs”}
{“asgd”、“lbfgs”}
{“双”、“lbfgs”}
如果学习者
是“支持向量机”
虽然您可以设置其他组合,但它们通常会导致精度较差的解决方案。金宝搏官方网站
如果预测数据是中等到低维的正则化
是“岭”
,设置解算器
来“蓄热”
.
如果正则化
是“套索”
,设置解算器
对这些组合中的任何一个:
“sgd”
“asgd”
“sparsa”
{“sgd”、“sparsa”}
{“asgd”、“sparsa”}
例子:“规划求解”,{‘sgd’,‘lbfgs}
β
- - - - - -初始线性系数估计0 (p
, 1)
(默认)|数值向量|数字矩阵初始线性系数估计值(“β”
和一个X
而且λ
).
如果您指定
软件优化使用β
的初始值和最小值λ
作为正则化强度。
该软件再次优化使用结果估计从以前的优化作为一个温暖的开始中次小的值λ
作为正则化强度。
软件执行第2步,直到耗尽所有的值λ
.
如果您指定j
,软件使用β(:,
作为初始值,在排序之后j
)λ
按升序使用λ(
作为正则化强度。j
)
如果你设置“规划求解”、“双”
,那么软件就会忽略β
.
数据类型:单
|双
偏见
- - - - - -初始截距估计FitBias
- - - - - -线性模型截距包含标志真正的
(默认)|假
线性模型截距包含标志,指定为由逗号分隔的对组成“FitBias”
而且真正的
或假
.
价值 | 描述 |
---|---|
真正的 |
该软件包括偏差项 |
假 |
软件集 |
例子:“FitBias”,假的
数据类型:逻辑
详细的
- - - - - -冗长的水平0
(默认)|非负整数详细级别,指定为逗号分隔的对,由“详细”
和一个非负整数。详细的
控制诊断信息的数量fitrlinear
在命令行中显示。
价值 | 描述 |
---|---|
0 |
fitrlinear 不显示诊断信息。 |
1 |
fitrlinear 周期性地显示和存储目标函数、梯度幅度和其他诊断信息的值。FitInfo。历史 包含诊断信息。 |
任意正整数 | fitrlinear 在每次优化迭代中显示和存储诊断信息。FitInfo。历史 包含诊断信息。 |
例子:“详细”,1
数据类型:双
|单
BatchSize
- - - - - -Mini-batch大小小批量大小,指定为由逗号分隔的对组成“BatchSize”
一个正整数。在每次迭代中,软件估计次梯度使用BatchSize
训练数据的观察结果。
如果X
是一个数字矩阵,那么默认值是10
.
如果X
是稀疏矩阵,那么默认值是马克斯([10日装天花板(sqrt (ff))))
,在那里ff = numel(X)/nnz(X)
(X
).
例子:“BatchSize”,100年
数据类型:单
|双
LearnRate
- - - - - -学习速率学习率,指定为由逗号分隔的对组成“LearnRate”
一个正标量。LearnRate
指定每次迭代要执行多少步。在每次迭代中,梯度指定了每一步的方向和大小。
如果正则化
是“岭”
,然后LearnRate
初始学习率
如果正则化
是“套索”
,则对于所有迭代,LearnRate
是恒定的。
默认情况下,LearnRate
是1 /√(1 +马克斯(sum (x ^ 2, obsDim))))
,在那里obsDim
是1
如果观察结果组成的列X
,2
否则。
例子:“LearnRate”,0.01
数据类型:单
|双
OptimizeLearnRate
- - - - - -标志降低学习率真正的
(默认)|假
标志,以在软件检测到发散(即超过最小值)时降低学习率,指定为逗号分隔的对,由“OptimizeLearnRate”
而且真正的
或假
.
如果OptimizeLearnRate
是“真正的”
,那么:
对于很少的优化迭代,软件开始优化使用LearnRate
作为学习率。
如果目标函数值增加,则软件重新启动并使用当前学习率值的一半。
软件迭代第2步,直到目标函数减小。
例子:“OptimizeLearnRate”,真的
数据类型:逻辑
TruncationPeriod
- - - - - -套索截断运行之间的小批数量10
(默认)|正整数CategoricalPredictors
- - - - - -分类预测器列表“所有”
类别预测符列表,指定为此表中的值之一。描述假设预测器数据在行中有观测值,在列中有预测器。
价值 | 描述 |
---|---|
正整数向量 | 向量中的每个条目都是一个指标值,表明相应的预测器是分类的。索引值在1和之间 如果 |
逻辑向量 | 一个 |
字符矩阵 | 矩阵的每一行都是一个预测变量的名称。名称必须与中的条目匹配PredictorNames .用额外的空格填充名字,这样字符矩阵的每一行都有相同的长度。 |
字符向量的字符串数组或单元格数组 | 数组中的每个元素都是一个预测变量的名称。名称必须与中的条目匹配PredictorNames . |
“所有” |
所有预测因素都是绝对的。 |
默认情况下,如果预测器数据在表(资源描述
),fitrlinear
如果一个变量是逻辑向量、分类向量、字符数组、字符串数组或字符向量的单元格数组,则假定该变量是分类的。如果预测器数据为矩阵(X
),fitrlinear
假设所有预测因子都是连续的。要将任何其他预测符标识为类别预测符,请使用“CategoricalPredictors”
名称-值参数。
对于已识别的分类预测因子,fitrlinear
使用两种不同的方案创建虚拟变量,具体取决于分类变量是无序的还是有序的。对于一个无序分类变量,fitrlinear
为分类变量的每一层创建一个虚拟变量。对于有序分类变量,fitrlinear
创建的虚拟变量比类别数少一个。详细信息请参见自动创建虚拟变量.
例子:“CategoricalPredictors”、“所有”
数据类型:单
|双
|逻辑
|字符
|字符串
|细胞
PredictorNames
- - - - - -预测变量名称预测器变量名,指定为唯一名称的字符串数组或唯一字符向量的单元格数组。的功能“PredictorNames”
这取决于你提供训练数据的方式。
如果你提供X
而且Y
,那么你就可以使用了“PredictorNames”
中预测变量的名称X
.
里面名字的顺序PredictorNames
必须与预测器的顺序相对应吗X
.假设X
具有默认方向,在行中观察,在列中预测,PredictorNames {1}
名字是X (: 1)
,PredictorNames {2}
名字是X (:, 2)
等等。同时,大小(X, 2)
而且元素个数(PredictorNames)
必须是相等的。
默认情况下,PredictorNames
是{x1, x2,…}
.
如果你提供资源描述
,那么你就可以使用了“PredictorNames”
选择在训练中使用哪些预测变量。也就是说,fitrlinear
中仅使用预测变量PredictorNames
以及训练中的响应变量。
PredictorNames
的子集Tbl.Properties.VariableNames
并且不能包括响应变量的名称。
默认情况下,PredictorNames
包含所有预测变量的名称。
一个好的实践是使用其中一种来指定训练的预测器“PredictorNames”
或公式
,但不是两者都有。
例子:PredictorNames,{‘SepalLength’,‘SepalWidth’,‘PetalLength’,‘PetalWidth}
数据类型:字符串
|细胞
ResponseName
- - - - - -响应变量名“Y”
(默认)|特征向量|字符串标量响应变量名,指定为字符向量或字符串标量。
如果你提供Y
,那么你就可以使用了ResponseName
为响应变量指定名称。
如果你提供ResponseVarName
或公式
,那么你就不能用了ResponseName
.
例子:“ResponseName”、“反应”
数据类型:字符
|字符串
ResponseTransform
- - - - - -响应转换“没有”
(默认)|函数处理响应转换,指定为任意一种“没有”
或者一个函数句柄。默认为“没有”
,这意味着@ (y) y
,或者没有变换。对于MATLAB函数或您定义的函数,使用其函数句柄进行响应变换。函数句柄必须接受一个向量(原始响应值)并返回一个相同大小的向量(转换后的响应值)。
例子:假设您创建了一个函数句柄,通过使用将指数变换应用于输入向量Myfunction = @(y)exp(y)
.然后,您可以将响应转换指定为myfunction ResponseTransform,
.
数据类型:字符
|字符串
|function_handle
权重
- - - - - -观察权重资源描述
CrossVal
- - - - - -交叉验证标志“关闭”
(默认)|“上”
交叉验证标志,指定为逗号分隔的对,由“Crossval”
而且“上”
或“关闭”
.
如果你指定“上”
,然后软件实现10倍交叉验证。
若要重写此交叉验证设置,请使用以下名称-值对参数之一:CVPartition
,坚持
,或KFold
.要创建交叉验证的模型,一次只能使用一个交叉验证的名称-值对参数。
例子:“Crossval”,“上”
CVPartition
- - - - - -交叉验证分区[]
(默认)|cvpartition
分区对象交叉验证分区,指定为逗号分隔的对,由“CVPartition”
和一个cvpartition
创建的分区对象cvpartition
.分区对象指定交叉验证的类型,以及训练集和验证集的索引。
坚持
- - - - - -顽固性验证的数据比例用于拒绝验证的数据的百分比,指定为逗号分隔的对,由“坚持”
和范围(0,1)中的标量值。如果你指定“坚持”,
,然后软件:p
随机储备
%的数据作为验证数据,并使用其余数据训练模型p
* 100
中存储紧凑的训练过的模型训练有素的
交叉验证模型的属性。
要创建交叉验证的模型,您只能使用以下四个选项之一:'
CVPartition
'
,'
坚持
'
,或'
KFold
'
.
例子:“坚持”,0.1
数据类型:双
|单
KFold
- - - - - -折叠数10
(默认)|大于1的正整数值交叉验证分类器中使用的折叠数,指定为逗号分隔的对,由“KFold”
一个大于1的正整数。如果你指定,例如,“KFold”,
,然后软件:
将数据随机划分为
对于每个集合,保留该集合作为验证数据,并使用另一个集合训练模型k- 1集
存储k
紧凑,训练模型的细胞k
的-by-1单元格向量训练有素的
交叉验证模型的属性。
要创建交叉验证的模型,您只能使用以下四个选项之一:'
CVPartition
'
,'
坚持
'
,或'
KFold
'
.
例子:“KFold”,8
数据类型:单
|双
BatchLimit
- - - - - -最大批次数要处理的最大批数,指定为逗号分隔的对,由“BatchLimit”
一个正整数。当软件处理时BatchLimit
批量,它终止优化。
默认情况下:
如果你指定“BatchLimit”
而且'
PassLimit
'
,然后软件选择处理最少观测值的参数。
如果你指定“BatchLimit”
但不是“PassLimit”
,然后软件处理足够多的批次,以完成一次完整的数据遍历。
例子:“BatchLimit”,100年
数据类型:单
|双
BetaTolerance
- - - - - -线性系数和偏置项的相对公差1的军医
(默认)|负的标量对线性系数和偏置项(截距)的相对公差,指定为逗号分隔的对,由“BetaTolerance”
一个非负标量。
让
,即优化迭代时的系数向量和偏置项
中指定的最后一个求解器,如果该软件收敛解算器
,则优化终止。否则,软件将使用中指定的下一个求解器解算器
.
例子:e-6 BetaTolerance, 1
数据类型:单
|双
NumCheckConvergence
- - - - - -下一次收敛检查前要处理的批次数在下一次收敛检查之前要处理的批数,指定为由逗号分隔的对组成“NumCheckConvergence”
一个正整数。
要指定批处理大小,请参见BatchSize
.
默认情况下,每次通过整个数据集,软件都会检查大约10次收敛性。
例子:“NumCheckConvergence”,100年
数据类型:单
|双
PassLimit
- - - - - -最大通过次数1
(默认)|正整数通过数据的最大次数,指定为逗号分隔的对,由“PassLimit”
一个正整数。
fitrlinear
当它完成一次数据传递时处理所有观察。
当fitrlinear
传递数据PassLimit
多次,它会终止优化。
如果你指定'
BatchLimit
'
而且PassLimit
,然后fitrlinear
选择处理最少观测值的参数。详情请参见算法.
例子:“PassLimit”,5
数据类型:单
|双
ValidationData
- - - - - -优化收敛检测的验证数据用于优化收敛检测的验证数据,指定为由逗号分隔的对组成“ValidationData”
一个单元格数组或表格。
在优化过程中,软件定期估计损失ValidationData
.如果验证数据丢失增加,则软件终止优化。详情请参见算法.若要使用交叉验证优化超参数,请参阅交叉验证选项,例如CrossVal
.
你可以指定ValidationData
如果你用桌子的话,就像桌子一样资源描述
包含响应变量的预测器数据。在这种情况下,ValidationData
必须包含相同的预测器和响应包含在资源描述
.该软件不会对观察结果施加权重,即使资源描述
包含一个权重向量。要指定权重,必须指定ValidationData
作为单元格数组。
如果你指定ValidationData
作为单元格数组,它必须具有以下格式:
ValidationData {1}
必须具有与预测器数据相同的数据类型和方向。也就是说,如果你使用预测矩阵X
,然后ValidationData {1}
一定是X
.训练数据中的预测变量X
而且ValidationData {1}
必须对应。类似地,如果你使用预测表资源描述
那么,预测者的数据ValidationData {1}
必须是包含相同预测变量的表资源描述
.的观测数ValidationData {1}
而且预测数据可能会有所不同。
ValidationData {2}
必须匹配响应变量的数据类型和格式吗Y
或ResponseVarName
.如果ValidationData {2}
是一个响应的数组,那么它必须有相同数量的元素和观察的数量ValidationData {1}
.如果ValidationData {1}
那是桌子吗ValidationData {2}
可以是表中响应变量的名称。如果你想用同样的ResponseVarName
或公式
,您可以指定ValidationData {2}
作为[]
.
您可以指定ValidationData {3}
作为一个ValidationData {1}
这包含了观察权重。该软件用验证数据规范化权重,使它们的和为1。
如果你指定ValidationData
并且要在命令行上显示验证损失,请为其指定大于0的值详细的
.
中指定的最后一个求解器,如果该软件收敛解算器
,则优化终止。否则,软件将使用中指定的下一个求解器解算器
.
默认情况下,软件不会通过监测验证数据丢失来检测收敛性。
GradientTolerance
- - - - - -绝对梯度公差1 e-6
(默认)|负的标量绝对梯度公差,指定为由逗号分隔的对组成“GradientTolerance”
一个非负标量。GradientTolerance
的值解算器
:“蓄热”
,“lbfgs”
,“sparsa”
.
让
为目标函数相对于优化迭代时的系数和偏差项的梯度向量
如果你还指定BetaTolerance
,则优化终止于fitrlinear
满足任意一个停止准则。
如果fitrlinear
中指定的最后一个求解器收敛解算器
,则优化终止。否则,fitrlinear
中指定的下一个求解器解算器
.
例子:GradientTolerance,每股收益
数据类型:单
|双
IterationLimit
- - - - - -优化迭代的最大次数1000
(默认)|正整数优化迭代的最大次数,指定为由逗号分隔的对组成“IterationLimit”
一个正整数。IterationLimit
的值解算器
:“蓄热”
,“lbfgs”
,“sparsa”
.
例子:e7 IterationLimit, 1
数据类型:单
|双
BetaTolerance
- - - - - -线性系数和偏置项的相对公差1的军医
(默认)|负的标量对线性系数和偏置项(截距)的相对公差,指定为逗号分隔的对,由“BetaTolerance”
一个非负标量。
让
,即优化迭代时的系数向量和偏置项
如果你还指定DeltaGradientTolerance
,当软件满足任意一个停止条件时,优化终止。
中指定的最后一个求解器,如果该软件收敛解算器
,则优化终止。否则,软件将使用中指定的下一个求解器解算器
.
例子:e-6 BetaTolerance, 1
数据类型:单
|双
DeltaGradientTolerance
- - - - - -Gradient-difference宽容0.1
(默认)|负的标量上下池之间的梯度差公差Karush-Kuhn-Tucker (KKT)互补条件违规者,指定为逗号分隔的对,由“DeltaGradientTolerance”
一个非负标量。DeltaGradientTolerance
适用于“双重”
的价值解算器
只有。
如果KKT违反者的量级小于DeltaGradientTolerance
,然后fitrlinear
终止优化。
如果fitrlinear
中指定的最后一个求解器收敛解算器
,则优化终止。否则,fitrlinear
中指定的下一个求解器解算器
.
例子:依照“DeltaGapTolerance”,1
数据类型:双
|单
NumCheckConvergence
- - - - - -在下一次收敛检查之前,通过整个数据集处理的次数5
(默认)|正整数在下一次收敛检查之前,通过整个数据集要处理的次数,指定为由逗号分隔的对组成的“NumCheckConvergence”
一个正整数。
例子:“NumCheckConvergence”,100年
数据类型:单
|双
PassLimit
- - - - - -最大通过次数10
(默认)|正整数通过数据的最大次数,指定为逗号分隔的对,由“PassLimit”
一个正整数。
当软件完成对数据的一次处理时,它已经处理了所有的观察结果。
当软件通过数据时PassLimit
多次,它会终止优化。
例子:“PassLimit”,5
数据类型:单
|双
ValidationData
- - - - - -优化收敛检测的验证数据用于优化收敛检测的验证数据,指定为由逗号分隔的对组成“ValidationData”
一个单元格数组或表格。
在优化过程中,软件定期估计损失ValidationData
.如果验证数据丢失增加,则软件终止优化。详情请参见算法.若要使用交叉验证优化超参数,请参阅交叉验证选项,例如CrossVal
.
你可以指定ValidationData
如果你用桌子的话,就像桌子一样资源描述
包含响应变量的预测器数据。在这种情况下,ValidationData
必须包含相同的预测器和响应包含在资源描述
.该软件不会对观察结果施加权重,即使资源描述
包含一个权重向量。要指定权重,必须指定ValidationData
作为单元格数组。
如果你指定ValidationData
作为单元格数组,它必须具有以下格式:
ValidationData {1}
必须具有与预测器数据相同的数据类型和方向。也就是说,如果你使用预测矩阵X
,然后ValidationData {1}
一定是X
.训练数据中的预测变量X
而且ValidationData {1}
必须对应。类似地,如果你使用预测表资源描述
那么,预测者的数据ValidationData {1}
必须是包含相同预测变量的表资源描述
.的观测数ValidationData {1}
而且预测数据可能会有所不同。
ValidationData {2}
必须匹配响应变量的数据类型和格式吗Y
或ResponseVarName
.如果ValidationData {2}
是一个响应的数组,那么它必须有相同数量的元素和观察的数量ValidationData {1}
.如果ValidationData {1}
那是桌子吗ValidationData {2}
可以是表中响应变量的名称。如果你想用同样的ResponseVarName
或公式
,您可以指定ValidationData {2}
作为[]
.
您可以指定ValidationData {3}
作为一个ValidationData {1}
这包含了观察权重。该软件用验证数据规范化权重,使它们的和为1。
如果你指定ValidationData
并且要在命令行上显示验证损失,请为其指定大于0的值详细的
.
中指定的最后一个求解器,如果该软件收敛解算器
,则优化终止。否则,软件将使用中指定的下一个求解器解算器
.
默认情况下,软件不会通过监测验证数据丢失来检测收敛性。
BetaTolerance
- - - - - -线性系数和偏置项的相对公差1的军医
(默认)|负的标量对线性系数和偏置项(截距)的相对公差,指定为逗号分隔的对,由“BetaTolerance”
一个非负标量。
让
,即优化迭代时的系数向量和偏置项
如果你还指定GradientTolerance
,当软件满足任意一个停止条件时,优化终止。
中指定的最后一个求解器,如果该软件收敛解算器
,则优化终止。否则,软件将使用中指定的下一个求解器解算器
.
例子:e-6 BetaTolerance, 1
数据类型:单
|双
GradientTolerance
- - - - - -绝对梯度公差1 e-6
(默认)|负的标量绝对梯度公差,指定为由逗号分隔的对组成“GradientTolerance”
一个非负标量。
让
为目标函数相对于优化迭代时的系数和偏差项的梯度向量
如果你还指定BetaTolerance
,当软件满足任意一个停止条件时,优化终止。
如果软件收敛于软件中指定的最后一个求解器,则优化终止。否则,软件将使用中指定的下一个求解器解算器
.
例子:e-5 GradientTolerance, 1
数据类型:单
|双
HessianHistorySize
- - - - - -黑森近似的历史缓冲区大小15
(默认)|正整数黑森近似的历史缓冲区大小,指定为逗号分隔的对,由“HessianHistorySize”
一个正整数。也就是说,在每次迭代中,软件使用最新的统计数据组成黑森HessianHistorySize
迭代。
软件不支持金宝app“HessianHistorySize”
SpaRSA。
例子:“HessianHistorySize”,10
数据类型:单
|双
IterationLimit
- - - - - -优化迭代的最大次数1000
(默认)|正整数优化迭代的最大次数,指定为由逗号分隔的对组成“IterationLimit”
一个正整数。IterationLimit
的值解算器
:“蓄热”
,“lbfgs”
,“sparsa”
.
例子:“IterationLimit”,500年
数据类型:单
|双
ValidationData
- - - - - -优化收敛检测的验证数据用于优化收敛检测的验证数据,指定为由逗号分隔的对组成“ValidationData”
一个单元格数组或表格。
在优化过程中,软件定期估计损失ValidationData
.如果验证数据丢失增加,则软件终止优化。详情请参见算法.若要使用交叉验证优化超参数,请参阅交叉验证选项,例如CrossVal
.
你可以指定ValidationData
如果你用桌子的话,就像桌子一样资源描述
包含响应变量的预测器数据。在这种情况下,ValidationData
必须包含相同的预测器和响应包含在资源描述
.该软件不会对观察结果施加权重,即使资源描述
包含一个权重向量。要指定权重,必须指定ValidationData
作为单元格数组。
如果你指定ValidationData
作为单元格数组,它必须具有以下格式:
ValidationData {1}
必须具有与预测器数据相同的数据类型和方向。也就是说,如果你使用预测矩阵X
,然后ValidationData {1}
一定是X
.训练数据中的预测变量X
而且ValidationData {1}
必须对应。类似地,如果你使用预测表资源描述
那么,预测者的数据ValidationData {1}
必须是包含相同预测变量的表资源描述
.的观测数ValidationData {1}
而且预测数据可能会有所不同。
ValidationData {2}
必须匹配响应变量的数据类型和格式吗Y
或ResponseVarName
.如果ValidationData {2}
是一个响应的数组,那么它必须有相同数量的元素和观察的数量ValidationData {1}
.如果ValidationData {1}
那是桌子吗ValidationData {2}
可以是表中响应变量的名称。如果你想用同样的ResponseVarName
或公式
,您可以指定ValidationData {2}
作为[]
.
您可以指定ValidationData {3}
作为一个ValidationData {1}
这包含了观察权重。该软件用验证数据规范化权重,使它们的和为1。
如果你指定ValidationData
并且要在命令行上显示验证损失,请为其指定大于0的值详细的
.
中指定的最后一个求解器,如果该软件收敛解算器
,则优化终止。否则,软件将使用中指定的下一个求解器解算器
.
默认情况下,软件不会通过监测验证数据丢失来检测收敛性。
OptimizeHyperparameters
- - - - - -需要优化的参数“没有”
(默认)|“汽车”
|“所有”
|符合条件的参数名的字符串数组或单元格数组|向量的optimizableVariable
对象参数进行优化,指定为由逗号分隔的对组成“OptimizeHyperparameters”
和以下其中之一:
“没有”
-不要优化。
“汽车”
——使用{“λ”、“学习者”}
.
“所有”
-优化所有符合条件的参数。
符合条件的参数名的字符串数组或单元格数组。
向量的optimizableVariable
对象的输出hyperparameters
.
优化尝试最小化交叉验证损失(错误)fitrlinear
通过改变参数。若要控制交叉验证类型和优化的其他方面,请使用HyperparameterOptimizationOptions
名称-值对。
请注意
的价值“OptimizeHyperparameters”
重写使用其他名称-值参数指定的任何值。例如,设置“OptimizeHyperparameters”
来“汽车”
原因fitrlinear
方法所对应的超参数“汽车”
选项并忽略超参数的任何指定值。
符合条件的参数fitrlinear
是:
通过传递的向量来设置非默认参数optimizableVariable
具有非默认值的对象。例如,
负载carsmallParams =超参数(“fitrlinear”(功率、重量),MPG);参数(1)。Range = [1e-3,2e4];
通过参数个数
作为价值OptimizeHyperparameters
.
默认情况下,迭代显示出现在命令行上,并根据优化中的超参数数量显示图形。对于优化和绘图,目标函数为Log(1 +交叉验证损失).要控制迭代显示,请设置详细的
字段“HyperparameterOptimizationOptions”
名称-值参数。为了控制情节,设置ShowPlots
字段“HyperparameterOptimizationOptions”
名称-值参数。
有关示例,请参见优化线性回归.
例子:“OptimizeHyperparameters”、“汽车”
HyperparameterOptimizationOptions
- - - - - -优化选项用于优化的选项,指定为结构。的效果OptimizeHyperparameters
名称-值参数。结构中的所有字段都是可选的。
字段名 | 值 | 默认的 |
---|---|---|
优化器 |
|
“bayesopt” |
AcquisitionFunctionName |
名称包括的获取函数 |
“expected-improvement-per-second-plus” |
MaxObjectiveEvaluations |
目标函数求值的最大个数。 | 30. 为“bayesopt” 而且“randomsearch” ,而整个电网为“gridsearch” |
MaxTime |
时间限制,指定为正实标量。时间限制以秒为单位,由 |
正 |
NumGridDivisions |
为“gridsearch” ,表示每个维度中值的数量。该值可以是一个正整数向量,给出每个维度的值的数量,也可以是一个适用于所有维度的标量。对于分类变量,该字段将被忽略。 |
10 |
ShowPlots |
指示是否显示图的逻辑值。如果真正的 ,该字段根据迭代次数绘制最佳观测目标函数值。如果使用贝叶斯优化(优化器 是“bayesopt” ),则该字段也绘制出目标函数的最佳估计值。最佳观测目标函数值和最佳估计目标函数值对应于BestSoFar(观察) 而且BestSoFar (estim)。 列的迭代分别显示。您可以在属性中找到这些值ObjectiveMinimumTrace 而且EstimatedObjectiveMinimumTrace 的Mdl。HyperparameterOptimizationResults .如果问题包含一个或两个用于贝叶斯优化的优化参数,则ShowPlots 还绘制了目标函数对参数的模型。 |
真正的 |
SaveIntermediateResults |
时是否保存结果的逻辑值优化器 是“bayesopt” .如果真正的 ,此字段将覆盖名为“BayesoptResults” 在每次迭代中。变量是aBayesianOptimization 对象。 |
假 |
详细的 |
在命令行显示:
详细信息请参见 |
1 |
UseParallel |
指示是否并行运行贝叶斯优化的逻辑值,这需要并行计算工具箱™。由于并行计时的不可再现性,并行贝叶斯优化不一定产生可再现的结果。详细信息请参见并行贝叶斯优化. | 假 |
重新分区 |
指示是否在每次迭代中重新划分交叉验证的逻辑值。如果这个字段是 设置 |
假 |
使用以下三个选项中的一个即可。 | ||
CVPartition |
一个cvpartition 对象创建的cvpartition |
“Kfold”,5 如果没有指定交叉验证字段 |
坚持 |
范围内的标量(0,1) 表示抵抗分数 |
|
Kfold |
大于1的整数 |
例子:“HyperparameterOptimizationOptions”、结构(MaxObjectiveEvaluations, 60)
数据类型:结构体
Mdl
-训练好的线性回归模型RegressionLinear
模型对象|RegressionPartitionedLinear
交叉验证的模型对象训练过的线性回归模型,返回为RegressionLinear
模型对象或RegressionPartitionedLinear
交叉验证的模型对象。
如果您设置了任何名称-值对参数KFold
,坚持
,CrossVal
,或CVPartition
,然后Mdl
是一个RegressionPartitionedLinear
交叉验证的模型对象。否则,Mdl
是一个RegressionLinear
模型对象。
引用Mdl
,使用点表示法。例如,输入Mdl。β
在命令窗口显示估计系数的矢量或矩阵。
请注意
与其他回归模型不同,为了节省内存使用,RegressionLinear
而且RegressionPartitionedLinear
模型对象不存储训练数据或优化细节(例如,收敛历史)。
FitInfo
-优化细节优化细节,作为结构数组返回。
字段指定最终值或名称-值对参数规范,例如,客观的
是优化结束时目标函数的值。的值对应的多维字段行λ
列对应于的值解算器
.
该表描述了一些值得注意的字段。
场 | 描述 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TerminationStatus |
|
||||||||||||||
FitTime |
时间流逝,以秒为单位 | ||||||||||||||
历史 |
每个迭代的优化信息的结构数组。这个领域
|
要访问字段,使用点表示法。例如,要访问每个迭代的目标函数值的向量,请输入FitInfo.History.Objective
.
检查是一种很好的做法FitInfo
评估收敛是否令人满意。
HyperparameterOptimizationResults
-超参数交叉验证优化BayesianOptimization
对象|表包含超参数和相关值超参数的交叉验证优化,返回为BayesianOptimization
对象或超参数及相关值的表。的值时,输出为非空“OptimizeHyperparameters”
不是“没有”
.输出值取决于优化器
字段的值。“HyperparameterOptimizationOptions”
名称-值对参数:
的价值优化器 场 |
的价值HyperparameterOptimizationResults |
---|---|
“bayesopt” (默认) |
类的对象BayesianOptimization |
“gridsearch” 或“randomsearch” |
使用的超参数表,观察到的目标函数值(交叉验证损失),以及从最低(最好)到最高(最差)的观察值排序 |
请注意
如果学习者
是“leastsquares”
,则目标函数中的损失项为MSE的一半。损失
默认情况下返回MSE。因此,如果你使用损失
来检查替换,或训练,错误,然后有一个差异之间的MSE返回损失
优化的结果是FitInfo
或通过使用设置一个正的详细级别返回到命令行详细的
.
一个
高维线性分类和回归模型相对快速地最小化目标函数,但代价是一定的准确性,只有数字预测变量的限制,并且模型必须是相对于参数的线性。如果您的预测器数据集是低维到中维,或包含异质变量,那么您应该使用适当的分类或回归拟合函数。为了帮助您决定哪个拟合函数适合您的低维数据集,请使用此表。
最好的做法是确定预测矩阵的方向,使观察值与列相对应,并进行指定“ObservationsIn”、“列”
.因此,您可以体验到优化执行时间的显著减少。
如果你的预测数据只有很少的观测值,但有很多预测变量,那么:
指定“PostFitBias”,真的
.
对于SGD或ASGD求解器,设置PassLimit
一个大于1的正整数,例如,5或10。这种设置通常会产生更好的准确性。
对于SGD和ASGD求解器,BatchSize
影响收敛速度。
如果BatchSize
太小了,是吗fitrlinear
在多次迭代中达到最小值,但每次迭代快速计算梯度。
如果BatchSize
太大了吗fitrlinear
在较少的迭代中达到最小值,但每次迭代计算梯度较慢。
高学习率(见LearnRate
)加速收敛到最小值,但可能导致发散(即超过最小值)。小的学习率确保收敛到最小,但可能导致缓慢的终止。
当使用套索惩罚,试验不同的值TruncationPeriod
.例如,setTruncationPeriod
来1
,10
,然后One hundred.
.
为了提高效率,fitrlinear
没有标准化预测器数据。标准化X
,输入
X = bsxfun (@rdivide bsxfun (@minus X,意味着(X, 2)),性病(0,2));
代码要求将预测器和观察值定向为的行和列X
,分别。此外,为了节省内存使用,代码将原始预测数据替换为标准化数据。
在训练模型之后,您可以生成预测新数据响应的C/ c++代码。生成C/ c++代码需要MATLAB编码器™.详细信息请参见代码生成简介.
如果你指定ValidationData
,则在目标函数优化过程中:
fitrlinear
估计的验证损失ValidationData
定期使用当前模型,并跟踪最小估计值。
当fitrlinear
估计验证损失,它将估计与最小估计进行比较。
当随后验证损失估计超过最小估计5倍时,fitrlinear
终止优化。
如果你指定ValidationData
要实现交叉验证例程(CrossVal
,CVPartition
,坚持
,或KFold
),那么:
fitrlinear
使用训练数据分区训练模型。在目标函数优化过程中,fitrlinear
使用ValidationData
作为终止优化的另一种可能的方法(有关详细信息,请参阅前面的项目)。
一次fitrlinear
在满足停车准则的前提下,基于优化后的线性系数和截距构建训练模型。
如果你实现fitrlinear
那么还没有用尽所有的训练集折叠fitrlinear
返回到步骤2,使用下一个训练集折叠进行训练。
否则,fitrlinear
终止训练,然后返回交叉验证的模型。
您可以确定交叉验证模型的质量。例如:
要使用步骤1中的保留数据或折叠外数据确定验证损失,请将交叉验证的模型传递给kfoldLoss
.
为了预测第1步中对残留数据或折叠外数据的观察结果,将交叉验证的模型传递给kfoldPredict
.
[1]何超海、林超杰。“大规模线性支持向量回归。”金宝app
[2]谢长杰,张桂文,林长杰,s.s. Keerthi, s.s Sundararajan。大规模线性支持向量机的双坐标下降方法。
[3] Langford, J., Li ., and T. Zhang。“通过截断梯度的稀疏在线学习。”
[4]诺西德尔,J.和S. J.赖特。
[5]沙利夫-施瓦兹,S. Y.辛格和N.斯雷布罗。Pegasos:支持向量机的原始估计次梯度求解器
[6]赖特,S. J. R. D.诺瓦克,M. A. T.菲格雷多。"可分离近似的稀疏重建"
小,林。正则化随机学习和在线优化的双平均方法
徐伟。“用平均随机梯度下降法实现最优一次大规模学习”
使用注意事项和限制:
fitrlinear
不支持高金宝app表格
数据。
与内存中的参数相比,一些名称-值对参数具有不同的默认值和值fitrlinear
函数。金宝app支持的名称-值对参数,以及任何差异,是:
‘ε’
“ObservationsIn”
—仅金宝app支持“行”
.
“λ”
-可以“汽车”
(默认值)或标量。
“学习者”
“正规化”
—仅金宝app支持“岭”
.
“规划求解”
—仅金宝app支持“lbfgs”
.
“详细”
—默认值为1
“β”
“偏见”
“FitBias”
—仅金宝app支持真正的
.
“重量”
—Value必须为高数组。
“HessianHistorySize”
“BetaTolerance”
—将默认值放宽为1 e - 3
.
“GradientTolerance”
—将默认值放宽为1 e - 3
.
“IterationLimit”
—将默认值放宽为20.
.
“OptimizeHyperparameters”
-价值“正规化”
参数必须为“岭”
.
“HyperparameterOptimizationOptions”
-对于交叉验证,只支持高优化金宝app“坚持”
验证。默认情况下,软件选择并保留20%的数据作为拒绝验证数据,并使用其余数据训练模型。可以使用此参数为拒绝分数指定不同的值。例如,指定“HyperparameterOptimizationOptions”、结构(“抵抗”,0.3)
保留30%的数据作为验证数据。
对于高数组fitrlinear
通过在每次迭代中将损失和梯度计算分布到tall数组的不同部分来实现LBFGS。其他求解器不能用于高数组。
当初始值为β
而且偏见
不是给定的,fitrlinear
首先,通过将模型局部拟合到部分数据,并通过平均来组合系数,从而细化参数的初始估计。
有关更多信息,请参见高大的数组.
要执行并行超参数优化,请使用“HyperparameterOptimizationOptions”、结构(UseParallel,真的)
类调用中的名称-值参数fitrlinear
函数。
有关并行超参数优化的更多信息,请参见并行贝叶斯优化.
有关并行计算的一般信息,请参见运行MATLAB函数与自动并行支持金宝app(并行计算工具箱).
fitrsvm
|fitlm
|套索
|脊
|fitclinear
|预测
|kfoldPredict
|kfoldLoss
|RegressionLinear
|RegressionPartitionedLinear
Sie haben eine geänderte版本dieses Beispiels。Möchten Sie dieses Beispiel mit Ihren Änderungen öffnen?
你的身体和身体之间的联系MATLAB-Befehl
Führen Sie den Befehl durch Eingabe in das MATLAB-Befehlsfenster aus。web浏览器unterstützen keine MATLAB-Befehle。
您也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。