fitclinear
用二元线性分类器拟合高维数据
语法
描述
fitclinear训练线性分类模型,用于使用高维、完整或稀疏预测器数据进行两类(二进制)学习。现有的线性分类模型包括正则化支持向量机(SVM)和逻辑回归模型。金宝appfitclinear使用减少计算时间的技术(例如,随机梯度下降)最小化目标函数。
为了减少包含许多预测变量的高维数据集上的计算时间,可以使用fitclinear.有关低通过中维预测器数据集,请参见低维数据的替代方案.
通过使用纠错输出代码组合支持向量机或逻辑回归二元分类器来训练用于多类学习的线性分类模型,请参见fitcecoc.
Mdl
= fitclinear (资源描述,ResponseVarName)
使用表中的预测变量返回线性分类模型资源描述类标签在里面资源描述。ResponseVarName.
Mdl
= fitclinear (资源描述,公式)
使用表中的示例数据返回线性分类模型资源描述.输入参数公式是否有响应的解释模型和预测变量的子集资源描述曾经适合Mdl.
Mdl
= fitclinear (资源描述,Y)
使用表中的预测变量返回线性分类模型资源描述类的标签是向量Y.
Mdl
= fitclinear (X,Y,名称,值)
除以前语法中的任何输入参数组合外,还使用一个或多个名称-值对参数指定选项。例如,您可以指定预测器矩阵的列对应于观察值、实现逻辑回归或指定交叉验证。方法进行交叉验证是一种良好的实践“Kfold”名称-值对参数。交叉验证结果决定了模型的泛化程度。
[Mdl,FitInfo= fitclinear(___)
还使用任何前面的语法返回优化细节。你不能要求FitInfo对于交叉验证的模型。
[Mdl,FitInfo,HyperparameterOptimizationResults= fitclinear(___)
参数时,还返回超参数优化细节OptimizeHyperparameters名称-值对。
例子
列车线性分类模型
使用支持向量机、双SGD和山脊正则化训练二元线性分类模型。金宝app
加载NLP数据集。
负载nlpdata
X是一个稀疏矩阵的预测数据,和Y是类标签的分类向量。数据中有两个以上的类。
识别与“统计和机器学习工具箱”文档网页对应的标签。
Ystats = Y ==“统计数据”;
训练一个二进制线性分类模型,可以识别文档网页中的字数是否来自统计和机器学习工具箱™文档。使用整个数据集训练模型。通过提取拟合摘要来确定优化算法对模型与数据的拟合程度。
rng (1);%用于再现性[Mdl,FitInfo] = fitclinear(X,Ystats)
Mdl = ClassificationLinear ResponseName: 'Y' ClassNames: [0 1] ScoreTransform: 'none' Beta: [34023x1 double]偏差:-1.0059 Lambda: 3.1674e-05学习者:'svm'属性,方法
FitInfo =带字段的结构:Lambda: 3.1674e-05目标:5.3783e-04 PassLimit: 10 NumPasses: 10 BatchLimit: [] NumIterations: 238561 GradientNorm: NaN GradientTolerance: 0 RelativeChangeInBeta: 0.0562 BetaTolerance: 1.0000e-04 DeltaGradient: 1.4582 DeltaGradientTolerance: 1 TerminationCode: 0 TerminationStatus:{'迭代限制超过。'} Alpha: [31572x1 double]历史记录:[]FitTime: 0.8858求解器:{'dual'}
Mdl是一个ClassificationLinear模型。你可以通过Mdl而训练或新的数据损失检验样本内分类误差。或者,你可以通过Mdl新的预测数据预测预测新观测值的类别标签。
FitInfo是一个结构数组,其中包含终止状态(TerminationStatus),以及求解器将模型与数据拟合所需的时间(FitTime).这是一个很好的实践FitInfo确定优化终止测量是否令人满意。因为训练时间很短,你可以尝试重新训练模型,但要增加数据的遍历次数。这可以改善措施,如DeltaGradient.
使用交叉验证找到好的套索惩罚
为了确定使用逻辑回归学习器的线性分类模型的良好套索惩罚强度,实现5倍交叉验证。
加载NLP数据集。
负载nlpdata
X是一个稀疏矩阵的预测数据,和Y是类标签的分类向量。数据中有两个以上的类。
这些模型应该识别网页中的字数是否来自统计和机器学习工具箱™文档。因此,确定与统计和机器学习工具箱™文档网页对应的标签。
Ystats = Y ==“统计数据”;
创建一组11个对数间隔的正则化强度
通过
.
Lambda = logspace(-6,-0.5,11);
交叉验证模型。要提高执行速度,可以调换预测器数据,并指定观察值为列。用SpaRSA估计系数。将目标函数的梯度公差降低到1 e-8.
X = X';rng (10);%用于再现性CVMdl = fitclinear(X,Ystats,“ObservationsIn”,“列”,“KFold”5,...“学习者”,“物流”,“规划求解”,“sparsa”,“正规化”,“套索”,...“λ”λ,“GradientTolerance”1 e-8)
CVMdl = ClassificationPartitionedLinear CrossValidatedModel: 'Linear' ResponseName: 'Y' NumObservations: 31572 KFold: 5 Partition: [1x1 cvpartition] ClassNames: [0 1] ScoreTransform: 'none'属性,方法
numCLModels = nummel (CVMdl.Trained)
numCLModels = 5
CVMdl是一个ClassificationPartitionedLinear模型。因为fitclinear实现5倍交叉验证,CVMdl包含5ClassificationLinear软件在每次折叠上训练的模型。
显示第一个训练好的线性分类模型。
Mdl1 = CVMdl。训练有素的{1}
Mdl1 = ClassificationLinear ResponseName: 'Y' ClassNames: [0 1] ScoreTransform: 'logit' Beta: [34023x11 double]偏差:[-13.1918 -13.1918 -13.1918 -13.1918 -9.0803 -7.1989…[Lambda: [1.0000e-06 3.5481e-06 1.2589e-05 4.4668e-05…]学习者:“逻辑”属性,方法
Mdl1是一个ClassificationLinear模型对象。fitclinear构造Mdl1通过训练前四层。因为λ是一个正则化强度序列,你能想到吗Mdl1作为11个模型,每个模型中的正则化强度为1λ.
估计交叉验证的分类误差。
ce = kfoldLoss(CVMdl);
因为有11个正则化优势,ce是一个1乘11的分类错误率向量。
较高的值λ导致预测变量稀疏性,这是分类器的一个很好的特性。对于每个正则化强度,使用整个数据集和交叉验证模型时相同的选项训练线性分类模型。确定每个模型的非零系数的数量。
Mdl = fitclinear(X,Ystats,“ObservationsIn”,“列”,...“学习者”,“物流”,“规划求解”,“sparsa”,“正规化”,“套索”,...“λ”λ,“GradientTolerance”1 e-8);numNZCoeff = sum(Mdl.Beta~=0);
在同一图中,绘制交叉验证,分类错误率和每个正则化强度的非零系数的频率。在对数尺度上画出所有变量。
图;[h,hL1,hL2] = plotyy(log10(Lambda),log10(ce),...log10(λ)log10 (numNZCoeff));hL1。标志=“o”;hL2。标志=“o”;ylabel (h (1),'log_{10}分类错误') ylabel (h (2),'log_{10}非零系数频率')包含(“log_{10}λ的)标题(测试样本统计的)举行从
选择正则化强度的指标,以平衡预测变量稀疏性和低分类错误。在本例中,为之间的值
来
应该足够了。
idxFinal = 7;
从Mdl用所选的正则化强度。
MdlFinal = selectModels(Mdl,idxFinal);
MdlFinal是一个ClassificationLinear包含一个正则化强度的模型。要估计新观测值的标签,请通过MdlFinal新的数据预测.
优化线性分类器
这个例子展示了如何最小化线性分类器中的交叉验证错误fitclinear.本例使用NLP数据集。
加载NLP数据集。
负载nlpdata
X是一个稀疏矩阵的预测数据,和Y是类标签的分类向量。数据中有两个以上的类。
这些模型应该识别网页中的字数是否来自统计和机器学习工具箱™文档。识别相关标签。
X = X';Ystats = Y ==“统计数据”;
类优化分类“汽车”参数。
为了重现性,设置随机种子并使用“expected-improvement-plus”采集功能。
rng默认的Mdl = fitclinear(X,Ystats,“ObservationsIn”,“列”,“规划求解”,“sparsa”,...“OptimizeHyperparameters”,“汽车”,“HyperparameterOptimizationOptions”,...结构(“AcquisitionFunctionName”,“expected-improvement-plus”))
|=====================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar |λ|学生| | |结果| |运行时| | (estim(观察) .) | | | |=====================================================================================================| | 最好1 | | 0.041619 | 7.9197 | 0.041619 | 0.041619 | 0.077903 |物流| | 2 |最好| 0.00072849 | 8.6074 | 0.00072849 | 0.0028767 | 2.1405 e-09 |物流| | 3 |接受| 0.049221 | 9.0699 | 0.00072849 | 0.00075737 | 0.72101 |支持向量机| | 4 |接受| 0.00079184 | 7.8816 | 0.00072849 | 0.00074989 | 3.4734 e-07 |支持向量机| | 5 |接受| 0.00076017 | 7.3993 | 0.00072849 | 0.00072915 | 1.1738 e-08 |物流| | 6 |接受| 0.00085519 | 8.5031 | 0.00072849 | 0.00072735 | 2.473 e-09 |支持向量机| | | 7日接受| 0.00079184 | 7.0025 | 0.00072849 | 0.00072504 | 3.1854 e-08 |支持向量机| | |接受8 | 0.00088686 | 7.7765 | 0.00072849 | 0.00072219 | 3.1717平台以及|支持向量机| | | 9日接受| 0.00076017 | 6.4699 | 0.00072849 | 0.00068087 | 3.1837平台以及物流| | | |接受10 | 0.00079184 | 7.9615 | 0.00072849 | 0.00072894 | 1.1258 e-07 |支持向量机| | | 11日接受| 0.00072849 | 7.3135 | 0.00072849 | 0.00070014 | 3.0254 e-09 |物流| | 12最好| | 0.00066515 | 9.1424 | 0.00066515 | 0.00074706 | 1.9706 e-07 |物流| | | 13日接受| 0.00066515 | 7.2682 | 0.00066515 | 0.00062538 | 6.3482 e-08 |物流| | | 14日接受| 0.00069682 | 9.9849 | 0.00066515 | 0.00065022 |15 7.5612 e-08 |物流| | |接受| 0.00066515 | 8.1818 | 0.00066515 | 0.00065314 | 8.6693 e-08 |物流| | | 16日接受| 0.00069682 | 9.1597 | 0.00066515 | 0.00066257 | 9.3481 e-08 |物流| | | 17日接受| 0.00076017 | 5.9323 | 0.00066515 | 0.00066275 | 8.4679平台以及物流| | | | 18日接受| 0.00088686 | 13.14 | 0.00066515 | 0.00066414 | 3.0816 e-07 |物流| | | 19日接受| 0.0012669 | 7.6276 | 0.00066515 | 0.00066548 | 0.0008715 |支持向量机| | 20 |接受| 0.00085519 | 5.7376 |0.00066515 | 0.00066703 | 5.2543 e-05 | svm | |=====================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar |λ|学生| | |结果| |运行时| | (estim(观察) .) | | | |=====================================================================================================| | 21日|接受| 0.00091854 | 4.8697 | 0.00066515 | 0.00066729 | 0.00023384 |支持向量机| | | 22日接受| 0.00079184 |10.853 | 0.00066515 | 0.00066745 | 4.1954e-06 | svm | | 23 | Accept | 0.0010452 | 25.604 | 0.00066515 | 0.00068253 | 7.1565e-06 | logistic | | 24 | Accept | 0.0010136 | 26.681 | 0.00066515 | 0.00067696 | 1.9805e-06 | logistic | | 25 | Accept | 0.00079184 | 8.4275 | 0.00066515 | 0.00067719 | 1.2205e-06 | svm | | 26 | Accept | 0.00076017 | 9.2075 | 0.00066515 | 0.00068293 | 3.6687e-08 | logistic | | 27 | Accept | 0.00076017 | 7.8866 | 0.00066515 | 0.00068328 | 9.8797e-09 | svm | | 28 | Accept | 0.00082351 | 10.111 | 0.00066515 | 0.00068351 | 1.2236e-05 | svm | | 29 | Accept | 0.049221 | 1.0949 | 0.00066515 | 0.00068257 | 3.1358 | logistic | | 30 | Accept | 0.0013303 | 11.363 | 0.00066515 | 0.00067789 | 0.00072735 | logistic |
__________________________________________________________ 优化完成。最大目标达到30个。总函数评估:30总运行时间:313.2648秒总目标函数评估时间:278.1766最佳观测可行点:Lambda Learner __________ ________ 1.9706e-07 logistic观测目标函数值= 0.00066515估计目标函数值= 0.00073542函数评估时间= 9.1424最佳估计可行点(根据模型):Lambda Learner __________ ________ 8.6693e-08 logistic估计目标函数值= 0.00067789估计函数评估时间= 8.7508
Mdl = ClassificationLinear ResponseName: 'Y' ClassNames: [0 1] ScoreTransform: 'logit' Beta: [34023x1 double]偏差:-10.0538 Lambda: 8.6693e-08学习者:'logistic'属性,方法
输入参数
X- - - - - -预测数据
完整的矩阵|稀疏矩阵
预测器数据,指定为n——- - - - - -p全矩阵或稀疏矩阵。
的长度Y观察的次数X必须是相等的。
请注意
如果你定位你的预测矩阵,使观察结果与列相对应,并指定“ObservationsIn”、“列”,那么优化执行时间可能会显著减少。
数据类型:单|双
Y- - - - - -类标签
分类数组|字符数组|字符串数组|逻辑向量|数值向量|字符向量的单元格数组
分类模型训练到的类标签,指定为类别、字符或字符串数组、逻辑或数字向量或字符向量的单元格数组。
fitclinear金宝app只支持二进制分类。要么Y必须包含两个完全不同的类,或者必须使用“类名”名称-值对参数。关于多课学习,请参见fitcecoc.
的长度Y必须等于中的观测数X或资源描述.
如果Y是字符数组,则每个标签必须对应数组中的一行。
类指定类顺序是一个很好的实践一会名称-值对参数。
数据类型:字符|字符串|细胞|分类|逻辑|单|双
资源描述- - - - - -样本数据
表格
用于训练模型的示例数据,指定为表。每行资源描述对应一个观测值,每一列对应一个预测变量。不允许使用字符向量的单元格数组以外的多列变量和单元格数组。
可选地,资源描述可以包含响应变量的一列和观测权重的一列。
响应变量必须是类别、字符或字符串数组、逻辑或数字向量或字符向量的单元格数组。
fitclinear金宝app只支持二进制分类。响应变量必须包含恰好两个不同的类,或者必须使用一会名称-值参数。关于多课学习,请参见fitcecoc.
类在响应变量中指定类的顺序是一种良好的实践一会名称-值参数。
权重的列必须是数字向量。
中必须指定响应变量资源描述通过使用ResponseVarName或公式并指定观测权重资源描述通过使用权重.
通过使用指定响应变量ResponseVarName- - - - - -fitclinear使用其余变量作为预测器。中剩余变量的子集资源描述作为预测器,使用指定预测器变量PredictorNames.
使用定义模型规范公式- - - - - -fitclinear中的变量的子集资源描述作为预测变量和响应变量,如公式.
如果资源描述不包含响应变量,然后通过使用Y.响应变量的长度Y和进去的行数资源描述必须是相等的。中变量的子集资源描述作为预测器,使用指定预测器变量PredictorNames.
数据类型:表格
ResponseVarName- - - - - -响应变量名
变量名资源描述
响应变量名,指定为中的变量名资源描述.
您必须指定ResponseVarName作为字符向量或字符串标量。例如,如果响应变量Y存储为资源描述。Y,然后指定为“Y”.否则,软件处理的所有列资源描述,包括Y,作为训练模型时的预测因子。
响应变量必须是类别、字符或字符串数组;向量:逻辑或数字向量;或者是字符向量的单元格数组。如果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,…,以=家,在那里名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来名字在报价。
例子:“ObservationsIn”、“列”、“学习者”,“物流”、“CrossVal”,“上”指定预测器矩阵的列对应于观察值,实现逻辑回归,实现10倍交叉验证。
请注意
方法时,不能使用任何交叉验证名称-值参数“OptimizeHyperparameters”名称-值参数。您可以修改交叉验证“OptimizeHyperparameters”只有使用“HyperparameterOptimizationOptions”名称-值参数。
线性分类选项
λ- - - - - -正则化项强度
“汽车”
(默认)|负的标量|非负值的向量
正则化术语的强度,指定为由逗号分隔的对组成“λ”而且“汽车”,一个非负的标量,或者一个非负的值的向量。
为“汽车”,λ= 1 /n.
如果指定了交叉验证、名值对参数(例如,CrossVal),然后n是折叠观察数。
否则,n是训练样本量。
对于一个非负值的向量,fitclinear中每个不同值依次优化目标函数λ按升序排列。
如果解算器是“sgd”或“asgd”而且正则化是“套索”,fitclinear不使用以前的系数估计作为温暖的开始用于下一个优化迭代。否则,fitclinear使用热启动。
如果正则化是“套索”时,则任意系数估计值为0时,均保持其值fitclinear中的后续值进行优化λ.
fitclinear返回每个指定正则化强度的系数估计值。
例子:“λ”,10 ^ (- (10:2:2))
数据类型:字符|字符串|双|单
学习者- - - - - -线性分类模型类型
“支持向量机”
(默认)|“物流”
线性分类模型类型,指定为由逗号分隔的对组成“学习者”而且“支持向量机”或“物流”.
在这个表格中,
β的向量p系数。
x是来自p预测变量。
b是标量偏置。
价值
算法
响应范围
损失函数
“支持向量机”
金宝app支持向量机
y∊{1};正类为1,其他为-1
铰链:
“物流”
逻辑回归
一样“支持向量机”
异常(物流):
例子:“学习者”,“物流”
ObservationsIn- - - - - -预测器数据观测维数
“行”
(默认)|“列”
预测器数据观测维数,指定为“行”或“列”.
请注意
如果你定位你的预测矩阵,使观察结果与列相对应,并指定“ObservationsIn”、“列”,那么您可能会经历计算时间的显著减少。你不能指定“ObservationsIn”、“列”用于表中的预测器数据。
例子:“ObservationsIn”、“列”
数据类型:字符|字符串
正则化- - - - - -复杂性惩罚类型
“套索”
|“岭”
复杂度惩罚类型,指定为由逗号分隔的对组成“正规化”而且“套索”或“岭”.
该软件从平均损失函数的和组成最小化的目标函数(见学习者)和该表中的正则化项。
价值
描述
“套索”
套索(L1)惩罚:
“岭”
脊(L2)惩罚:
要指定正则化项的强度,即λ在表达式中,使用λ.
该软件排除偏差项(β0)从正规化惩罚。
如果解算器是“sparsa”,则为默认值正则化是“套索”.否则,默认为“岭”.
提示
对于预测变量选择,请指定“套索”.有关变量选择的更多信息,请参见特征选择简介.
为了优化精度,请指定“岭”.
例子:“正规化”、“套索”
解算器- - - - - -目标函数最小化技术
“sgd”
|“asgd”
|“双重”
|“蓄热”|“lbfgs”|“sparsa”|字符串数组|字符向量的单元格数组
目标函数最小化技术,指定为逗号分隔对组成“规划求解”一个字符向量或字符串标量,一个字符串数组,或一个单元格数组的字符向量的值从这个表。
价值
描述
限制
“sgd”
随机梯度下降(SGD)[4][2]
“asgd”
平均随机梯度下降(ASGD)[7]
“双重”
支持向量机的双SGD[1][6]
正则化
必须“岭”而且学习者必须“支持向量机”.
“蓄热”
Broyden-Fletcher-Goldfarb-Shanno准牛顿算法(BFGS)[3]
效率低下,如果X是非常高维的。
“lbfgs”
有限内存BFGS (LBFGS)[3]
正则化必须“岭”.
“sparsa”
基于可分离近似的稀疏重建[5]
正则化必须“套索”.
如果你指定:
山脊惩罚(见正则化),X包含100个或更少的预测变量,则默认解算器为“蓄热”.
支持向量机模型(见学习者)、山脊惩罚,以及X包含超过100个预测变量,则默认解算器为“双重”.
套索罚X包含100个或更少的预测变量,则默认解算器为“sparsa”.
否则,默认解算器为“sgd”.请注意,在执行超参数优化时,默认求解器可以更改。有关更多信息,请参见正则化方法决定了超参数优化中使用的求解器.
如果指定求解器名称的字符串数组或单元格数组,则λ,软件采用求解器的解金宝搏官方网站j作为求解的一个温暖的开始j+ 1。
例子:{“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)
(默认)|数值向量|数字矩阵
初始线性系数估计值(β),指定为逗号分隔的对,由“β”和一个p-维数字向量或ap——- - - - - -l数字矩阵。p预测变量的数量在吗X而且l正则化强度值的数量(有关详细信息,请参阅λ).
如果您指定p-维向量,然后软件对目标函数进行优化l使用此过程的次数。
软件优化使用β的初始值和最小值λ作为正则化强度。
该软件再次优化使用结果估计从以前的优化作为一个温暖的开始中次小的值λ作为正则化强度。
软件执行第2步,直到耗尽所有的值λ.
如果您指定p——- - - - - -l矩阵,然后软件对目标函数进行优化l次了。在迭代j,软件使用β(:,j)作为初始值,在排序之后λ按升序使用λ(j)作为正则化强度。
如果你设置“规划求解”、“双”,那么软件就会忽略β.
数据类型:单|双
偏见- - - - - -初始截距估计
数字标量|数值向量
初步截距估计(b),指定为逗号分隔的对,由“偏见”和一个数值标量或l-维数值向量。l正则化强度值的数量(有关详细信息,请参阅λ).
如果您指定一个标量,那么软件将优化目标函数l使用此过程的次数。
软件优化使用偏见的初始值和最小值λ作为正则化强度。
使用结果估计作为下一个优化迭代的温暖开始,并在中使用下一个最小值λ作为正则化强度。
软件执行第2步,直到耗尽所有的值λ.
如果您指定l-维向量,然后软件对目标函数进行优化l次了。在迭代j,软件使用偏差(j)作为初始值,在排序之后λ按升序使用λ(j)作为正则化强度。
默认情况下:
如果学习者是“物流”,那么让gj如果是1Y (j)为正类,否则为-1。偏见是加权平均的吗g用于训练或交叉验证,内叠观察。
如果学习者是“支持向量机”,然后偏见是0。
数据类型:单|双
FitBias- - - - - -线性模型截距包含标志
真正的
(默认)|假
线性模型截距包含标志,指定为由逗号分隔的对组成“FitBias”而且真正的或假.
价值
描述
真正的
该软件包括偏差项b在线性模型中,然后估计它。
假
软件集b在估计期间= 0。
例子:“FitBias”,假的
数据类型:逻辑
PostFitBias- - - - - -标志拟合优化后的线性模型截距
假
(默认)|真正的
标志来拟合优化后的线性模型截距,指定为由逗号分隔的对组成“PostFitBias”而且真正的或假.
价值
描述
假
软件估计偏差项b这些系数β在优化。
真正的
估计b,软件:
估计β而且b使用模型
估计分类分数
不菲b通过在分类分数上设置阈值来获得最大的准确性
如果你指定真正的,然后FitBias一定是真的。
例子:“PostFitBias”,真的
数据类型:逻辑
详细的- - - - - -冗长的水平
0
(默认)|非负整数
详细级别,指定为逗号分隔的对,由“详细”和一个非负整数。详细的控制诊断信息的数量fitclinear在命令行中显示。
价值
描述
0
fitclinear不显示诊断信息。
1
fitclinear周期性地显示和存储目标函数、梯度幅度和其他诊断信息的值。FitInfo。历史包含诊断信息。
任意正整数
fitclinear在每次优化迭代中显示和存储诊断信息。FitInfo。历史包含诊断信息。
例子:“详细”,1
数据类型:双|单
SGD和ASGD求解器选项
BatchSize- - - - - -Mini-batch大小
正整数
小批量大小,指定为由逗号分隔的对组成“BatchSize”一个正整数。在每次迭代中,软件估计次梯度使用BatchSize训练数据的观察结果。
如果X是一个数字矩阵,那么默认值是10.
如果X是稀疏矩阵,那么默认值是马克斯([10日装天花板(sqrt (ff)))),在那里ff = numel(X)/nnz(X)(丰满的因素的X).
例子:“BatchSize”,100年
数据类型:单|双
LearnRate- - - - - -学习速率
积极的标量
学习率,指定为由逗号分隔的对组成“LearnRate”一个正标量。LearnRate通过缩放次梯度来控制优化步长。
如果正则化是“岭”,然后LearnRate初始学习率γ0.fitclinear确定迭代的学习率t,γt,使用
λ的值λ.
如果解算器是“sgd”,然后c= 1。
如果解算器是“asgd”,然后c是0.75[7].
如果正则化是“套索”,则对于所有迭代,LearnRate是恒定的。
默认情况下,LearnRate是1 /√(1 +马克斯(sum (x ^ 2, obsDim)))),在那里obsDim是1如果观测数据构成预测数据的列X,2否则。
例子:“LearnRate”,0.01
数据类型:单|双
OptimizeLearnRate- - - - - -标志降低学习率
真正的
(默认)|假
标志,以在软件检测到发散(即超过最小值)时降低学习率,指定为逗号分隔的对,由“OptimizeLearnRate”而且真正的或假.
如果OptimizeLearnRate是“真正的”,那么:
对于很少的优化迭代,软件开始优化使用LearnRate作为学习率。
如果目标函数值增加,则软件重新启动并使用当前学习率值的一半。
软件迭代第2步,直到目标函数减小。
例子:“OptimizeLearnRate”,真的
数据类型:逻辑
TruncationPeriod- - - - - -套索截断运行之间的小批数量
10
(默认)|正整数
套索截断运行之间的小批数,指定为逗号分隔的对,由“TruncationPeriod”一个正整数。
截断运行后,软件应用软阈值的线性系数。即加工后k=TruncationPeriod小批量,软件截断估计的系数j使用
SGD,
是系数的估计吗j处理后kmini-batches。
γt 迭代时的学习率是多少t.λ的值λ.
ASGD,
是平均估计系数吗j处理后kmini-batches,
如果正则化是“岭”,那么软件就会忽略TruncationPeriod.
例子:“TruncationPeriod”,100年
数据类型:单|双
其他分类选择
CategoricalPredictors- - - - - -分类预测器列表
正整数向量|逻辑向量|字符矩阵|字符串数组|字符向量的单元格数组|“所有”
类别预测符列表,指定为此表中的值之一。描述假设预测器数据在行中有观测值,在列中有预测器。
价值
描述
正整数向量
向量中的每个条目都是一个指标值,表明相应的预测器是分类的。索引值在1和之间p,在那里p用于训练模型的预测器的数量。如果fitclinear使用输入变量的子集作为预测器,然后函数仅使用该子集对预测器进行索引。的CategoricalPredictors值不计算响应变量、观察权重变量或函数不使用的任何其他变量。
逻辑向量
一个真正的Entry表示对应的预测器是分类的。向量的长度是p.
字符矩阵
矩阵的每一行都是一个预测变量的名称。名称必须与中的条目匹配PredictorNames.用额外的空格填充名字,这样字符矩阵的每一行都有相同的长度。
字符向量的字符串数组或单元格数组
数组中的每个元素都是一个预测变量的名称。名称必须与中的条目匹配PredictorNames.
“所有”
所有预测因素都是绝对的。
默认情况下,如果预测器数据在表(资源描述),fitclinear如果一个变量是逻辑向量、分类向量、字符数组、字符串数组或字符向量的单元格数组,则假定该变量是分类的。如果预测器数据为矩阵(X),fitclinear假设所有预测因子都是连续的。要将任何其他预测符标识为类别预测符,请使用“CategoricalPredictors”名称-值参数。
对于已识别的分类预测因子,fitclinear使用两种不同的方案创建虚拟变量,具体取决于分类变量是无序的还是有序的。对于一个无序分类变量,fitclinear为分类变量的每一层创建一个虚拟变量。对于有序分类变量,fitclinear创建的虚拟变量比类别数少一个。详细信息请参见自动创建虚拟变量.
例子:“CategoricalPredictors”、“所有”
数据类型:单|双|逻辑|字符|字符串|细胞
一会- - - - - -用于培训的类名
分类数组|字符数组|字符串数组|逻辑向量|数值向量|字符向量的单元格数组
用于训练的类名,指定为类别、字符或字符串数组;向量:逻辑或数字向量;或者是字符向量的单元格数组。一会必须具有与响应变量相同的数据类型资源描述或Y.
如果一会是字符数组,则每个元素必须对应数组中的一行。
使用一会:
在培训期间指定课程的顺序。
指定与类顺序对应的任何输入或输出参数维度的顺序。例如,使用一会指定…尺寸的顺序成本或返回的分类分数的列顺序预测.
选择用于培训的类的子集。例如,假设集合中所有不同的类名Y是(“a”、“b”、“c”).用课堂上的观察来训练模型“一个”而且“c”只是,指定“类名”,(“a”、“c”).
的默认值一会响应变量中所有不同类名的集合在吗资源描述或Y.
例子:“类名”,(“b”,“g”)
数据类型:分类|字符|字符串|逻辑|单|双|细胞
成本- - - - - -误分类代价
方阵|结构数组
错误分类代价,指定为逗号分隔的对,由“成本”一个方阵或结构。
如果你指定了方阵成本(“成本”,成本),然后成本(i, j)将一个点分类的成本是多少j如果它真正的阶级是我.也就是说,行对应于真实的类,列对应于预测的类。的相应行和列的类顺序成本,使用一会名称-值对参数。
如果你指定了结构年代(“成本”),那么它必须有两个字段:
S.ClassNames,其中包含类名作为与Y
S.ClassificationCosts,其中包含成本矩阵,其行和列的顺序为S.ClassNames
的默认值成本是(K) -眼睛(K),在那里K是不同类的数量。
fitclinear使用成本中指定的优先类概率之前.然后,fitclinear使用调整后的先验概率进行训练。
例子:“成本”,[0 2;1 0]
数据类型:单|双|结构体
PredictorNames- - - - - -预测变量名称
唯一名称的字符串数组|唯一字符向量的单元格数组
预测器变量名,指定为唯一名称的字符串数组或唯一字符向量的单元格数组。的功能“PredictorNames”这取决于你提供训练数据的方式。
如果你提供X而且Y,那么你就可以使用了“PredictorNames”中预测变量的名称X.
里面名字的顺序PredictorNames必须与预测器的顺序相对应吗X.假设X具有默认方向,在行中观察,在列中预测,PredictorNames {1}名字是X (: 1),PredictorNames {2}名字是X (:, 2)等等。同时,大小(X, 2)而且元素个数(PredictorNames)必须是相等的。
默认情况下,PredictorNames是{x1, x2,…}.
如果你提供资源描述,那么你就可以使用了“PredictorNames”选择在训练中使用哪些预测变量。也就是说,fitclinear中仅使用预测变量PredictorNames以及训练中的响应变量。
PredictorNames的子集Tbl.Properties.VariableNames并且不能包括响应变量的名称。
默认情况下,PredictorNames包含所有预测变量的名称。
一个好的实践是使用其中一种来指定训练的预测器“PredictorNames”或公式,但不是两者都有。
例子:PredictorNames,{‘SepalLength’,‘SepalWidth’,‘PetalLength’,‘PetalWidth}
数据类型:字符串|细胞
之前- - - - - -先验概率
“经验”
(默认)|“统一”
|数值向量|结构数组
每个类的先验概率,由逗号分隔的对组成“之前”而且“经验”,“统一”、数字向量或结构数组。
下表总结了设置先验概率的可用选项。
价值
描述
“经验”
类先验概率是类的相对频率Y.
“统一”
所有类先验概率都等于1/K,在那里K是类的数量。
数值向量
每个元素都是一个类先验概率。根据元素的顺序排列Y.方法指定顺序“类名”参数,然后对元素进行相应的排序。
结构数组
一个结构年代有两个字段:
S.ClassNames作为相同类型的变量包含类名Y.
S.ClassProbs包含相应先验概率的向量。
fitclinear的先验概率归一化之前和为1。
例子:“之前”,结构(“类名”,{{“setosa”、“癣”}},ClassProbs, 1:2)
数据类型:字符|字符串|双|单|结构体
ResponseName- - - - - -响应变量名
“Y”
(默认)|特征向量|字符串标量
响应变量名,指定为字符向量或字符串标量。
如果你提供Y,那么你就可以使用了ResponseName为响应变量指定名称。
如果你提供ResponseVarName或公式,那么你就不能用了ResponseName.
例子:“ResponseName”、“反应”
数据类型:字符|字符串
ScoreTransform- - - - - -分数转换
“没有”
(默认)|“doublelogit”
|“invlogit”
|“ismax”|“分对数”|函数处理|……
分数转换,指定为字符向量、字符串标量或函数句柄。
该表总结了可用的字符向量和字符串标量。
价值
描述
“doublelogit”
1 / (1 +e2x )
“invlogit”
日志(x/ (1 -x))
“ismax”
将得分最大的类的得分设置为1,并将所有其他类的得分设置为0
“分对数”
1 / (1 +e- - - - - -x )
“没有”或“身份”
x(转换)
“标志”
1x< 0为0x= 01x> 0
“对称”
2x- 1
“symmetricismax”
将得分最大的类的得分设置为1,并将所有其他类的得分设置为-1
“symmetriclogit”
2 / (1 +e- - - - - -x ) - 1
对于MATLAB函数或您定义的函数,使用其函数句柄进行分数转换。函数句柄必须接受一个矩阵(原始分数)并返回一个相同大小的矩阵(转换后的分数)。
例子:“ScoreTransform”、“分对数”
数据类型:字符|字符串|function_handle
权重- - - - - -观察权重
非负数值向量|变量名资源描述
中指定为非负数值向量或变量名的观测权重资源描述.软件对每个观察结果进行加权X或资源描述中对应的值权重.的长度权重必须等于中的观察数X或资源描述.
如果将输入数据指定为表资源描述,然后权重可以是变量名中的资源描述它包含一个数值向量。在这种情况下,您必须指定权重作为字符向量或字符串标量。例如,如果权重向量W存储为资源描述。W,然后指定为' W '.否则,软件处理的所有列资源描述,包括W,作为预测因子或训练模型时的响应变量。
默认情况下,权重是的(n, 1),在那里n观察的数量在吗X或资源描述.
软件规范化权重求和为各类别的先验概率值。
数据类型:单|双|字符|字符串
交叉验证选择
CrossVal- - - - - -交叉验证标志
“关闭”
(默认)|“上”
交叉验证标志,指定为逗号分隔的对,由“Crossval”而且“上”或“关闭”.
如果你指定“上”,然后软件实现10倍交叉验证。
若要重写此交叉验证设置,请使用以下名称-值对参数之一:CVPartition,坚持,或KFold.要创建交叉验证的模型,一次只能使用一个交叉验证的名称-值对参数。
例子:“Crossval”,“上”
坚持- - - - - -顽固性验证的数据比例
范围(0,1)中的标量值
用于拒绝验证的数据的百分比,指定为逗号分隔的对,由“坚持”和范围(0,1)中的标量值。如果你指定“坚持”,p
,然后软件:
随机储备p
* 100%的数据作为验证数据,并使用其余数据训练模型
中存储紧凑的训练过的模型训练有素的交叉验证模型的属性。
要创建交叉验证的模型,您只能使用以下四个选项之一:'CVPartition
','坚持',或'KFold
'.
例子:“坚持”,0.1
数据类型:双|单
KFold- - - - - -折叠数
10
(默认)|大于1的正整数值
交叉验证分类器中使用的折叠数,指定为逗号分隔的对,由“KFold”一个大于1的正整数。如果你指定,例如,“KFold”,k,然后软件:
将数据随机划分为k集
对于每个集合,保留该集合作为验证数据,并使用另一个集合训练模型k- 1集
存储k紧凑,训练模型的细胞k的-by-1单元格向量训练有素的交叉验证模型的属性。
要创建交叉验证的模型,您只能使用以下四个选项之一:'CVPartition
','坚持
',或'KFold'.
例子:“KFold”,8
数据类型:单|双
SGD和ASGD收敛控制
BatchLimit- - - - - -最大批次数
正整数
要处理的最大批数,指定为逗号分隔的对,由“BatchLimit”一个正整数。当软件处理时BatchLimit批量,它终止优化。
默认情况下:
软件通过这些数据PassLimit次了。
如果指定多个求解器,并使用(A)SGD来获得下一个求解器的初始近似值,则默认值为装天花板(1 e6 / BatchSize).BatchSize是值'BatchSize
'名称-值对参数。
如果你指定BatchLimit,然后fitclinear也使用导致处理最少观测值的参数BatchLimit或PassLimit.
例子:“BatchLimit”,100年
数据类型:单|双
BetaTolerance- - - - - -线性系数和偏置项的相对公差
1的军医
(默认)|负的标量
对线性系数和偏置项(截距)的相对公差,指定为逗号分隔的对,由“BetaTolerance”一个非负标量。
让
,即优化迭代时的系数向量和偏置项t.如果
,则优化终止。
中指定的最后一个求解器,如果该软件收敛解算器,则优化终止。否则,软件将使用中指定的下一个求解器解算器.
例子:e-6 BetaTolerance, 1
数据类型:单|双
NumCheckConvergence- - - - - -下一次收敛检查前要处理的批次数
正整数
在下一次收敛检查之前要处理的批数,指定为由逗号分隔的对组成“NumCheckConvergence”一个正整数。
要指定批处理大小,请参见BatchSize.
默认情况下,每次通过整个数据集,软件都会检查大约10次收敛性。
例子:“NumCheckConvergence”,100年
数据类型:单|双
PassLimit- - - - - -最大通过次数
1
(默认)|正整数
通过数据的最大次数,指定为逗号分隔的对,由“PassLimit”一个正整数。
fitclinear当它完成一次数据传递时处理所有观察。
当fitclinear传递数据PassLimit多次,它会终止优化。
如果你指定BatchLimit,然后fitclinear也使用导致处理最少观测值的参数BatchLimit或PassLimit.
例子:“PassLimit”,5
数据类型:单|双
ValidationData- - - - - -优化收敛检测的验证数据
单元阵列|表格
用于优化收敛检测的验证数据,指定为由逗号分隔的对组成“ValidationData”一个单元格数组或表格。
在优化过程中,软件定期估计损失ValidationData.如果验证数据丢失增加,则软件终止优化。详情请参见算法.若要使用交叉验证优化超参数,请参阅交叉验证选项,例如CrossVal.
你可以指定ValidationData如果你用桌子的话,就像桌子一样资源描述包含响应变量的预测器数据。在这种情况下,ValidationData必须包含相同的预测器和响应包含在资源描述.该软件不会对观察结果施加权重,即使资源描述包含一个权重向量。要指定权重,必须指定ValidationData作为单元格数组。
如果你指定ValidationData作为单元格数组,它必须具有以下格式:
ValidationData {1}必须具有与预测器数据相同的数据类型和方向。也就是说,如果你使用预测矩阵X,然后ValidationData {1}一定是米——- - - - - -p或p——- - - - - -米具有相同方向的预测器数据的完整或稀疏矩阵X.训练数据中的预测变量X而且ValidationData {1}必须对应。类似地,如果你使用预测表资源描述那么,预测者的数据ValidationData {1}必须是包含相同预测变量的表资源描述.的观测数ValidationData {1}而且预测数据可能会有所不同。
ValidationData {2}必须匹配响应变量的数据类型和格式吗Y或ResponseVarName.如果ValidationData {2}是一个类标签的数组,那么它必须有相同数量的元素作为观察的数量ValidationData {1}.的所有不同标签的集合ValidationData {2}必须是所有不同标签的子集Y.如果ValidationData {1}那是桌子吗ValidationData {2}可以是表中响应变量的名称。如果你想用同样的ResponseVarName或公式,您可以指定ValidationData {2}作为[].
您可以指定ValidationData {3}作为一个米-维数向量的观测权重或表中变量的名称ValidationData {1}这包含了观察权重。该软件用验证数据规范化权重,使它们的和为1。
如果你指定ValidationData并且要在命令行上显示验证损失,请为其指定大于0的值详细的.
中指定的最后一个求解器,如果该软件收敛解算器,则优化终止。否则,软件将使用中指定的下一个求解器解算器.
默认情况下,软件不会通过监测验证数据丢失来检测收敛性。
双SGD收敛控制
BetaTolerance- - - - - -线性系数和偏置项的相对公差
1的军医
(默认)|负的标量
对线性系数和偏置项(截距)的相对公差,指定为逗号分隔的对,由“BetaTolerance”一个非负标量。
让
,即优化迭代时的系数向量和偏置项t.如果
,则优化终止。
如果你还指定DeltaGradientTolerance,当软件满足任意一个停止条件时,优化终止。
中指定的最后一个求解器,如果该软件收敛解算器,则优化终止。否则,软件将使用中指定的下一个求解器解算器.
例子:e-6 BetaTolerance, 1
数据类型:单|双
DeltaGradientTolerance- - - - - -Gradient-difference宽容
1
(默认)|负的标量
上下池之间的梯度差公差Karush-Kuhn-Tucker (KKT)互补条件违规者,指定为逗号分隔的对,由“DeltaGradientTolerance”一个非负标量。
如果KKT违反者的量级小于DeltaGradientTolerance,则软件终止优化。
中指定的最后一个求解器,如果该软件收敛解算器,则优化终止。否则,软件将使用中指定的下一个求解器解算器.
例子:依照“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}一定是米——- - - - - -p或p——- - - - - -米具有相同方向的预测器数据的完整或稀疏矩阵X.训练数据中的预测变量X而且ValidationData {1}必须对应。类似地,如果你使用预测表资源描述那么,预测者的数据ValidationData {1}必须是包含相同预测变量的表资源描述.的观测数ValidationData {1}而且预测数据可能会有所不同。
ValidationData {2}必须匹配响应变量的数据类型和格式吗Y或ResponseVarName.如果ValidationData {2}是一个类标签的数组,那么它必须有相同数量的元素作为观察的数量ValidationData {1}.的所有不同标签的集合ValidationData {2}必须是所有不同标签的子集Y.如果ValidationData {1}那是桌子吗ValidationData {2}可以是表中响应变量的名称。如果你想用同样的ResponseVarName或公式,您可以指定ValidationData {2}作为[].
您可以指定ValidationData {3}作为一个米-维数向量的观测权重或表中变量的名称ValidationData {1}这包含了观察权重。该软件用验证数据规范化权重,使它们的和为1。
如果你指定ValidationData并且要在命令行上显示验证损失,请为其指定大于0的值详细的.
中指定的最后一个求解器,如果该软件收敛解算器,则优化终止。否则,软件将使用中指定的下一个求解器解算器.
默认情况下,软件不会通过监测验证数据丢失来检测收敛性。
BFGS, LBFGS和SpaRSA收敛控件
BetaTolerance- - - - - -线性系数和偏置项的相对公差
1的军医
(默认)|负的标量
对线性系数和偏置项(截距)的相对公差,指定为逗号分隔的对,由“BetaTolerance”一个非负标量。
让
,即优化迭代时的系数向量和偏置项t.如果
,则优化终止。
如果你还指定GradientTolerance,当软件满足任意一个停止条件时,优化终止。
中指定的最后一个求解器,如果该软件收敛解算器,则优化终止。否则,软件将使用中指定的下一个求解器解算器.
例子:e-6 BetaTolerance, 1
数据类型:单|双
GradientTolerance- - - - - -绝对梯度公差
1 e-6
(默认)|负的标量
绝对梯度公差,指定为由逗号分隔的对组成“GradientTolerance”一个非负标量。
让
为目标函数相对于优化迭代时的系数和偏差项的梯度向量t.如果
,则优化终止。
如果你还指定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}一定是米——- - - - - -p或p——- - - - - -米具有相同方向的预测器数据的完整或稀疏矩阵X.训练数据中的预测变量X而且ValidationData {1}必须对应。类似地,如果你使用预测表资源描述那么,预测者的数据ValidationData {1}必须是包含相同预测变量的表资源描述.的观测数ValidationData {1}而且预测数据可能会有所不同。
ValidationData {2}必须匹配响应变量的数据类型和格式吗Y或ResponseVarName.如果ValidationData {2}是一个类标签的数组,那么它必须有相同数量的元素作为观察的数量ValidationData {1}.的所有不同标签的集合ValidationData {2}必须是所有不同标签的子集Y.如果ValidationData {1}那是桌子吗ValidationData {2}可以是表中响应变量的名称。如果你想用同样的ResponseVarName或公式,您可以指定ValidationData {2}作为[].
您可以指定ValidationData {3}作为一个米-维数向量的观测权重或表中变量的名称ValidationData {1}这包含了观察权重。该软件用验证数据规范化权重,使它们的和为1。
如果你指定ValidationData并且要在命令行上显示验证损失,请为其指定大于0的值详细的.
中指定的最后一个求解器,如果该软件收敛解算器,则优化终止。否则,软件将使用中指定的下一个求解器解算器.
默认情况下,软件不会通过监测验证数据丢失来检测收敛性。
Hyperparameter优化
OptimizeHyperparameters- - - - - -需要优化的参数
“没有”
(默认)|“汽车”
|“所有”
|符合条件的参数名的字符串数组或单元格数组|向量的optimizableVariable对象
参数进行优化,指定为由逗号分隔的对组成“OptimizeHyperparameters”和以下其中之一:
“没有”-不要优化。
“汽车”——使用{“λ”、“学习者”}.
“所有”-优化所有符合条件的参数。
符合条件的参数名的字符串数组或单元格数组。
向量的optimizableVariable对象的输出hyperparameters.
优化尝试最小化交叉验证损失(错误)fitclinear通过改变参数。有关交叉验证丢失的信息(尽管是在不同的上下文中),请参见分类损失.若要控制交叉验证类型和优化的其他方面,请使用HyperparameterOptimizationOptions名称-值对。
请注意
的价值“OptimizeHyperparameters”重写使用其他名称-值参数指定的任何值。例如,设置“OptimizeHyperparameters”来“汽车”原因fitclinear方法所对应的超参数“汽车”选项并忽略超参数的任何指定值。
符合条件的参数fitclinear是:
通过传递的向量来设置非默认参数optimizableVariable具有非默认值的对象。例如,
负载fisheririsParams =超参数(“fitclinear”量,物种);参数(1)。Range = [1e-4,1e6];
通过参数个数作为价值OptimizeHyperparameters.
默认情况下,迭代显示出现在命令行上,并根据优化中的超参数数量显示图形。对于优化和绘图,目标函数为误分类率。要控制迭代显示,请设置详细的字段“HyperparameterOptimizationOptions”名称-值参数。为了控制情节,设置ShowPlots字段“HyperparameterOptimizationOptions”名称-值参数。
有关示例,请参见优化线性分类器.
例子:“OptimizeHyperparameters”、“汽车”
HyperparameterOptimizationOptions- - - - - -优化选项
结构
用于优化的选项,指定为结构。的效果OptimizeHyperparameters名称-值参数。结构中的所有字段都是可选的。
字段名
值
默认的
优化器
“bayesopt”-使用贝叶斯优化。在内部,此设置调用bayesopt.
“gridsearch”-使用网格搜索NumGridDivisions每个维度的值。
“randomsearch”-在其中随机搜索MaxObjectiveEvaluations点。
“gridsearch”以随机顺序进行搜索,使用统一抽样而不从网格中替换。优化后,可以使用命令获取网格顺序的表sortrows (Mdl.HyperparameterOptimizationResults).
“bayesopt”
AcquisitionFunctionName
“expected-improvement-per-second-plus”
“expected-improvement”
“expected-improvement-plus”
“expected-improvement-per-second”
“lower-confidence-bound”
“probability-of-improvement”
名称包括的获取函数每秒不能产生可重复的结果,因为优化依赖于目标函数的运行时间。名称包括的获取函数+当他们过度开发一个区域时,修改他们的行为。详情请参见采集函数类型.
“expected-improvement-per-second-plus”
MaxObjectiveEvaluations
目标函数求值的最大个数。
30.为“bayesopt”而且“randomsearch”,而整个电网为“gridsearch”
MaxTime
时间限制,指定为正实标量。时间限制以秒为单位,由抽搐而且toc.运行时间可以超过MaxTime因为MaxTime不中断函数求值。
正
NumGridDivisions
为“gridsearch”,表示每个维度中值的数量。该值可以是一个正整数向量,给出每个维度的值的数量,也可以是一个适用于所有维度的标量。对于分类变量,该字段将被忽略。
10
ShowPlots
指示是否显示图的逻辑值。如果真正的,该字段根据迭代次数绘制最佳观测目标函数值。如果使用贝叶斯优化(优化器是“bayesopt”),则该字段也绘制出目标函数的最佳估计值。最佳观测目标函数值和最佳估计目标函数值对应于BestSoFar(观察)而且BestSoFar (estim)。列的迭代分别显示。您可以在属性中找到这些值ObjectiveMinimumTrace而且EstimatedObjectiveMinimumTrace的Mdl。HyperparameterOptimizationResults.如果问题包含一个或两个用于贝叶斯优化的优化参数,则ShowPlots还绘制了目标函数对参数的模型。
真正的
SaveIntermediateResults
时是否保存结果的逻辑值优化器是“bayesopt”.如果真正的,此字段将覆盖名为“BayesoptResults”在每次迭代中。变量是aBayesianOptimization对象。
假
详细的
在命令行显示:
0-无迭代显示
1-迭代显示
2-带有额外信息的迭代显示
详细信息请参见bayesopt详细的
名称-值参数和示例使用贝叶斯优化优化分类器拟合.
1
UseParallel
指示是否并行运行贝叶斯优化的逻辑值,这需要并行计算工具箱™。由于并行计时的不可再现性,并行贝叶斯优化不一定产生可再现的结果。详细信息请参见并行贝叶斯优化.
假
重新分区
指示是否在每次迭代中重新划分交叉验证的逻辑值。如果这个字段是假,优化器使用单个分区进行优化。设置真正的通常会给出最健壮的结果,因为它考虑了分区噪声。然而,为了获得好的结果,真正的需要至少两倍的函数求值。
假
使用以下三个选项中的一个即可。
CVPartition
一个cvpartition对象创建的cvpartition
“Kfold”,5如果没有指定交叉验证字段
坚持
范围内的标量(0,1)表示抵抗分数
Kfold
大于1的整数
例子:“HyperparameterOptimizationOptions”、结构(MaxObjectiveEvaluations, 60)
数据类型:结构体
输出参数
Mdl-训练好的线性分类模型ClassificationLinear模型对象|ClassificationPartitionedLinear交叉验证的模型对象
训练过的线性分类模型,返回为ClassificationLinear模型对象或ClassificationPartitionedLinear交叉验证的模型对象。
如果您设置了任何名称-值对参数KFold,坚持,CrossVal,或CVPartition,然后Mdl是一个ClassificationPartitionedLinear交叉验证的模型对象。否则,Mdl是一个ClassificationLinear模型对象。
引用Mdl,使用点表示法。例如,输入Mdl。β在命令窗口显示估计系数的矢量或矩阵。
请注意
与其他分类模型不同,为了节省内存使用,ClassificationLinear而且ClassificationPartitionedLinear模型对象不存储训练数据或训练过程细节(例如,收敛历史)。
FitInfo-优化细节结构数组
优化细节,作为结构数组返回。
字段指定最终值或名称-值对参数规范,例如,客观的是优化结束时目标函数的值。的值对应的多维字段行λ列对应于的值解算器.
该表描述了一些值得注意的字段。
场
描述
TerminationStatus
优化终止原因
中的值TerminationCode
FitTime
时间流逝,以秒为单位
历史
每个迭代的优化信息的结构数组。这个领域解算器存储使用整数编码的求解器类型。
整数
解算器
1
SGD
2
ASGD
3.
支持向量机的双SGD
4
LBFGS
5
高炉煤气
6
SpaRSA
要访问字段,使用点表示法。例如,要访问每个迭代的目标函数值的向量,请输入FitInfo.History.Objective.
检查是一种很好的做法FitInfo评估收敛是否令人满意。
HyperparameterOptimizationResults-超参数交叉验证优化BayesianOptimization对象|表包含超参数和相关值
超参数的交叉验证优化,返回为BayesianOptimization对象或超参数及相关值的表。的值时,输出为非空“OptimizeHyperparameters”不是“没有”.输出值取决于优化器字段的值。“HyperparameterOptimizationOptions”名称-值对参数:
的价值优化器场
的价值HyperparameterOptimizationResults
“bayesopt”(默认)
类的对象BayesianOptimization
“gridsearch”或“randomsearch”
使用的超参数表,观察到的目标函数值(交叉验证损失),以及从最低(最好)到最高(最差)的观察值排序
更多关于
温暖的开始
一个温暖的开始是beta系数和偏差项的初始估计,提供给优化例程,以实现更快的收敛。
低维数据的替代方案
高维线性分类和回归模型相对快速地最小化目标函数,但代价是一定的准确性,只有数字预测变量的限制,并且模型必须是相对于参数的线性。如果您的预测器数据集是低维到中维,或包含异质变量,那么您应该使用适当的分类或回归拟合函数。为了帮助您决定哪个拟合函数适合您的低维数据集,请使用此表。
适合的模型
函数
显著的算法差异
支持向量机
二进制分类:fitcsvm
多类分类:fitcecoc
回归:fitrsvm
计算预测变量的Gram矩阵,便于进行非线性核变换。
使用SMO, ISDA或l1通过二次规划最小化quadprog(优化工具箱).
线性回归
无正则化的最小二乘:fitlm
使用套索惩罚的正则化最小二乘:套索
岭回归:脊或套索
套索实现循环坐标下降。
逻辑回归
无正则化逻辑回归:fitglm.
使用套索惩罚的正则化逻辑回归:lassoglm
fitglm实现迭代重加权最小二乘。
lassoglm实现循环坐标下降。
提示
最好的做法是确定预测矩阵的方向,使观察值与列相对应,并进行指定“ObservationsIn”、“列”.因此,您可以体验到优化执行时间的显著减少。
如果你的预测数据只有很少的观测值,但有很多预测变量,那么:
指定“PostFitBias”,真的.
对于SGD或ASGD求解器,设置PassLimit一个大于1的正整数,例如,5或10。这种设置通常会产生更好的准确性。
对于SGD和ASGD求解器,BatchSize影响收敛速度。
如果BatchSize太小了,是吗fitclinear在多次迭代中达到最小值,但每次迭代快速计算梯度。
如果BatchSize太大了吗fitclinear在较少的迭代中达到最小值,但每次迭代计算梯度较慢。
高学习率(见LearnRate)加速收敛到最小值,但可能导致发散(即超过最小值)。小的学习率确保收敛到最小,但可能导致缓慢的终止。
当使用套索惩罚,试验不同的值TruncationPeriod.例如,setTruncationPeriod来1,10,然后One hundred..
为了提高效率,fitclinear没有标准化预测器数据。标准化X,输入
X = bsxfun (@rdivide bsxfun (@minus X,意味着(X, 2)),性病(0,2));
代码要求将预测器和观察值定向为的行和列X,分别。此外,为了节省内存使用,代码将原始预测数据替换为标准化数据。
在训练模型之后,您可以生成C/ c++代码来预测新数据的标签。生成C/ c++代码需要MATLAB编码器™.详细信息请参见代码生成简介.
算法
如果你指定ValidationData,则在目标函数优化过程中:
fitclinear估计的验证损失ValidationData定期使用当前模型,并跟踪最小估计值。
当fitclinear估计验证损失,它将估计与最小估计进行比较。
当随后验证损失估计超过最小估计5倍时,fitclinear终止优化。
如果你指定ValidationData要实现交叉验证例程(CrossVal,CVPartition,坚持,或KFold),那么:
fitclinear随机分区X而且Y(或资源描述)根据您选择的交叉验证程序。
fitclinear使用训练数据分区训练模型。在目标函数优化过程中,fitclinear使用ValidationData作为终止优化的另一种可能的方法(有关详细信息,请参阅前面的项目)。
一次fitclinear在满足停车准则的前提下,基于优化后的线性系数和截距构建训练模型。
如果你实现k-fold交叉验证,以及fitclinear那么还没有用尽所有的训练集折叠fitclinear返回到步骤2,使用下一个训练集折叠进行训练。
否则,fitclinear终止训练,然后返回交叉验证的模型。
您可以确定交叉验证模型的质量。例如:
要使用步骤1中的保留数据或折叠外数据确定验证损失,请将交叉验证的模型传递给kfoldLoss.
为了预测第1步中对残留数据或折叠外数据的观察结果,将交叉验证的模型传递给kfoldPredict.
如果您指定成本,之前,权重参数时,输出模型对象将指定的值存储在成本,之前,W属性,分别。的成本属性存储用户指定的成本矩阵(C)一如既往。的之前而且W属性分别存储归一化后的先验概率和观测权重。对于模型训练,软件更新先验概率和观察权重,以纳入成本矩阵中描述的惩罚。详细信息请参见错误分类成本矩阵,先验概率和观察权重.
参考文献
[1]谢长杰,张桂文,林长杰,s.s. Keerthi, s.s Sundararajan。大规模线性支持向量机的双坐标下降方法。第25届国际机器学习会议论文集,ICML ' 08, 2001, pp. 408-415。
[2] Langford, J., Li ., and T. Zhang。“通过截断梯度的稀疏在线学习。”j·马赫。学习。Res。, Vol. 10, 2009, pp. 777-801。
[3]诺西德尔,J.和S. J.赖特。数值优化,第二版,纽约:施普林格,2006。
[4]沙利夫-施瓦兹,S. Y.辛格和N.斯雷布罗。Pegasos:支持向量机的原始估计次梯度求解器第24届机器学习国际会议论文集,ICML ' 07, 2007,第807-814页。
[5]赖特,S. J. R. D.诺瓦克,M. A. T.菲格雷多。"可分离近似的稀疏重建"反式。Proc团体。,卷57,第7期,2009,第2479-2493页。
小,林。正则化随机学习和在线优化的双平均方法j·马赫。学习。Res。, Vol. 11, 2010, pp. 2543-2596。
徐伟。“用平均随机梯度下降法实现最优一次大规模学习”相关系数, abs/1107.2490, 2011。
扩展功能
高大的数组使用行数超过内存容量的数组进行计算。
使用注意事项和限制:
fitclinear不支持高金宝app表格数据。
与内存中的默认值相比,一些名称-值对参数具有不同的默认值fitclinear函数。金宝app支持的名称-值对参数,以及任何差异,是:
“ObservationsIn”—仅金宝app支持“行”.
“λ”-可以“汽车”(默认值)或标量。
“学习者”
“正规化”—仅金宝app支持“岭”.
“规划求解”—仅金宝app支持“lbfgs”.
“FitBias”—仅金宝app支持真正的.
“详细”—默认值为1.
“β”
“偏见”
“类名”
“成本”
“之前”
“重量”—Value必须为高数组。
“HessianHistorySize”
“BetaTolerance”—将默认值放宽为1 e - 3.
“GradientTolerance”—将默认值放宽为1 e - 3.
“IterationLimit”—将默认值放宽为20..
“OptimizeHyperparameters”-价值“正规化”参数必须为“岭”.
“HyperparameterOptimizationOptions”-对于交叉验证,只支持高优化金宝app“坚持”验证。默认情况下,软件选择并保留20%的数据作为拒绝验证数据,并使用其余数据训练模型。可以使用此参数为拒绝分数指定不同的值。例如,指定“HyperparameterOptimizationOptions”、结构(“抵抗”,0.3)保留30%的数据作为验证数据。
对于高数组,fitclinear通过在每次迭代中将损失和梯度计算分布到高阵列的不同部分来实现LBFGS。其他求解器不能用于高数组。当初始值为β而且偏见不是给定的,fitclinear通过将模型局部拟合到部分数据,并通过求平均来组合系数,从而改进参数的初始估计。
有关更多信息,请参见高大的数组.
自动平行支撑金宝app通过使用并行计算工具箱™自动并行运行计算来加速代码。
要执行并行超参数优化,请使用“HyperparameterOptimizationOptions”、结构(UseParallel,真的)类调用中的名称-值参数fitclinear函数。
有关并行超参数优化的更多信息,请参见并行贝叶斯优化.
有关并行计算的一般信息,请参见运行MATLAB函数与自动并行支持金宝app(并行计算工具箱).
版本历史
在R2016a中引入
R2022a:正则化方法确定超参数优化过程中使用的求解器
R2022a的行为发生了变化
从R2022a开始,当指定优化超参数而不指定解算器值,fitclinear根据每次超参数优化迭代中选择的正则化类型,使用有限内存BFGS (LBFGS)求解器或可分离近似稀疏重建(SpaRSA)求解器。
当正则化是“岭”,函数设置解算器价值“lbfgs”默认情况下。
当正则化是“套索”,函数设置解算器价值“sparsa”默认情况下。
在以前的版本中,超参数优化期间的默认求解器选择取决于各种因素,包括正则化类型、学习器类型和预测器的数量。有关更多信息,请参见解算器.
fitclinear
为了减少包含许多预测变量的高维数据集上的计算时间,可以使用 通过使用纠错输出代码组合支持向量机或逻辑回归二元分类器来训练用于多类学习的线性分类模型,请参见fitcecoc
使用表中的预测变量返回线性分类模型Mdl
= fitclinear (资源描述
ResponseVarName
使用表中的示例数据返回线性分类模型Mdl
= fitclinear (资源描述
公式
使用表中的预测变量返回线性分类模型Mdl
= fitclinear (资源描述
Y
除以前语法中的任何输入参数组合外,还使用一个或多个名称-值对参数指定选项。例如,您可以指定预测器矩阵的列对应于观察值、实现逻辑回归或指定交叉验证。方法进行交叉验证是一种良好的实践Mdl
= fitclinear (X
Y
名称,值
[
还使用任何前面的语法返回优化细节。你不能要求Mdl
FitInfo
[
参数时,还返回超参数优化细节Mdl
FitInfo
HyperparameterOptimizationResults
OptimizeHyperparameters
例子
列车线性分类模型
使用支持向量机、双SGD和山脊正则化训练二元线性分类模型。金宝app
加载NLP数据集。
负载nlpdata
X是一个稀疏矩阵的预测数据,和Y是类标签的分类向量。数据中有两个以上的类。
识别与“统计和机器学习工具箱”文档网页对应的标签。
Ystats = Y ==“统计数据”;
训练一个二进制线性分类模型,可以识别文档网页中的字数是否来自统计和机器学习工具箱™文档。使用整个数据集训练模型。通过提取拟合摘要来确定优化算法对模型与数据的拟合程度。
rng (1);%用于再现性[Mdl,FitInfo] = fitclinear(X,Ystats)
Mdl = ClassificationLinear ResponseName: 'Y' ClassNames: [0 1] ScoreTransform: 'none' Beta: [34023x1 double]偏差:-1.0059 Lambda: 3.1674e-05学习者:'svm'属性,方法
FitInfo =带字段的结构:Lambda: 3.1674e-05目标:5.3783e-04 PassLimit: 10 NumPasses: 10 BatchLimit: [] NumIterations: 238561 GradientNorm: NaN GradientTolerance: 0 RelativeChangeInBeta: 0.0562 BetaTolerance: 1.0000e-04 DeltaGradient: 1.4582 DeltaGradientTolerance: 1 TerminationCode: 0 TerminationStatus:{'迭代限制超过。'} Alpha: [31572x1 double]历史记录:[]FitTime: 0.8858求解器:{'dual'}
Mdl是一个ClassificationLinear模型。你可以通过Mdl而训练或新的数据损失检验样本内分类误差。或者,你可以通过Mdl新的预测数据预测预测新观测值的类别标签。
FitInfo是一个结构数组,其中包含终止状态(TerminationStatus),以及求解器将模型与数据拟合所需的时间(FitTime).这是一个很好的实践FitInfo确定优化终止测量是否令人满意。因为训练时间很短,你可以尝试重新训练模型,但要增加数据的遍历次数。这可以改善措施,如DeltaGradient.
使用交叉验证找到好的套索惩罚
为了确定使用逻辑回归学习器的线性分类模型的良好套索惩罚强度,实现5倍交叉验证。
加载NLP数据集。
负载nlpdata
X是一个稀疏矩阵的预测数据,和Y是类标签的分类向量。数据中有两个以上的类。
这些模型应该识别网页中的字数是否来自统计和机器学习工具箱™文档。因此,确定与统计和机器学习工具箱™文档网页对应的标签。
Ystats = Y ==“统计数据”;
创建一组11个对数间隔的正则化强度
通过
.
Lambda = logspace(-6,-0.5,11);
交叉验证模型。要提高执行速度,可以调换预测器数据,并指定观察值为列。用SpaRSA估计系数。将目标函数的梯度公差降低到1 e-8.
X = X';rng (10);%用于再现性CVMdl = fitclinear(X,Ystats,“ObservationsIn”,“列”,“KFold”5,...“学习者”,“物流”,“规划求解”,“sparsa”,“正规化”,“套索”,...“λ”λ,“GradientTolerance”1 e-8)
CVMdl = ClassificationPartitionedLinear CrossValidatedModel: 'Linear' ResponseName: 'Y' NumObservations: 31572 KFold: 5 Partition: [1x1 cvpartition] ClassNames: [0 1] ScoreTransform: 'none'属性,方法
numCLModels = nummel (CVMdl.Trained)
numCLModels = 5
CVMdl是一个ClassificationPartitionedLinear模型。因为fitclinear实现5倍交叉验证,CVMdl包含5ClassificationLinear软件在每次折叠上训练的模型。
显示第一个训练好的线性分类模型。
Mdl1 = CVMdl。训练有素的{1}
Mdl1 = ClassificationLinear ResponseName: 'Y' ClassNames: [0 1] ScoreTransform: 'logit' Beta: [34023x11 double]偏差:[-13.1918 -13.1918 -13.1918 -13.1918 -9.0803 -7.1989…[Lambda: [1.0000e-06 3.5481e-06 1.2589e-05 4.4668e-05…]学习者:“逻辑”属性,方法
Mdl1是一个ClassificationLinear模型对象。fitclinear构造Mdl1通过训练前四层。因为λ是一个正则化强度序列,你能想到吗Mdl1作为11个模型,每个模型中的正则化强度为1λ.
估计交叉验证的分类误差。
ce = kfoldLoss(CVMdl);
因为有11个正则化优势,ce是一个1乘11的分类错误率向量。
较高的值λ导致预测变量稀疏性,这是分类器的一个很好的特性。对于每个正则化强度,使用整个数据集和交叉验证模型时相同的选项训练线性分类模型。确定每个模型的非零系数的数量。
Mdl = fitclinear(X,Ystats,“ObservationsIn”,“列”,...“学习者”,“物流”,“规划求解”,“sparsa”,“正规化”,“套索”,...“λ”λ,“GradientTolerance”1 e-8);numNZCoeff = sum(Mdl.Beta~=0);
在同一图中,绘制交叉验证,分类错误率和每个正则化强度的非零系数的频率。在对数尺度上画出所有变量。
图;[h,hL1,hL2] = plotyy(log10(Lambda),log10(ce),...log10(λ)log10 (numNZCoeff));hL1。标志=“o”;hL2。标志=“o”;ylabel (h (1),'log_{10}分类错误') ylabel (h (2),'log_{10}非零系数频率')包含(“log_{10}λ的)标题(测试样本统计的)举行从
选择正则化强度的指标,以平衡预测变量稀疏性和低分类错误。在本例中,为之间的值
来
应该足够了。
idxFinal = 7;
从Mdl用所选的正则化强度。
MdlFinal = selectModels(Mdl,idxFinal);
MdlFinal是一个ClassificationLinear包含一个正则化强度的模型。要估计新观测值的标签,请通过MdlFinal新的数据预测.
优化线性分类器
这个例子展示了如何最小化线性分类器中的交叉验证错误fitclinear.本例使用NLP数据集。
加载NLP数据集。
负载nlpdata
X是一个稀疏矩阵的预测数据,和Y是类标签的分类向量。数据中有两个以上的类。
这些模型应该识别网页中的字数是否来自统计和机器学习工具箱™文档。识别相关标签。
X = X';Ystats = Y ==“统计数据”;
类优化分类“汽车”参数。
为了重现性,设置随机种子并使用“expected-improvement-plus”采集功能。
rng默认的Mdl = fitclinear(X,Ystats,“ObservationsIn”,“列”,“规划求解”,“sparsa”,...“OptimizeHyperparameters”,“汽车”,“HyperparameterOptimizationOptions”,...结构(“AcquisitionFunctionName”,“expected-improvement-plus”))
|=====================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar |λ|学生| | |结果| |运行时| | (estim(观察) .) | | | |=====================================================================================================| | 最好1 | | 0.041619 | 7.9197 | 0.041619 | 0.041619 | 0.077903 |物流| | 2 |最好| 0.00072849 | 8.6074 | 0.00072849 | 0.0028767 | 2.1405 e-09 |物流| | 3 |接受| 0.049221 | 9.0699 | 0.00072849 | 0.00075737 | 0.72101 |支持向量机| | 4 |接受| 0.00079184 | 7.8816 | 0.00072849 | 0.00074989 | 3.4734 e-07 |支持向量机| | 5 |接受| 0.00076017 | 7.3993 | 0.00072849 | 0.00072915 | 1.1738 e-08 |物流| | 6 |接受| 0.00085519 | 8.5031 | 0.00072849 | 0.00072735 | 2.473 e-09 |支持向量机| | | 7日接受| 0.00079184 | 7.0025 | 0.00072849 | 0.00072504 | 3.1854 e-08 |支持向量机| | |接受8 | 0.00088686 | 7.7765 | 0.00072849 | 0.00072219 | 3.1717平台以及|支持向量机| | | 9日接受| 0.00076017 | 6.4699 | 0.00072849 | 0.00068087 | 3.1837平台以及物流| | | |接受10 | 0.00079184 | 7.9615 | 0.00072849 | 0.00072894 | 1.1258 e-07 |支持向量机| | | 11日接受| 0.00072849 | 7.3135 | 0.00072849 | 0.00070014 | 3.0254 e-09 |物流| | 12最好| | 0.00066515 | 9.1424 | 0.00066515 | 0.00074706 | 1.9706 e-07 |物流| | | 13日接受| 0.00066515 | 7.2682 | 0.00066515 | 0.00062538 | 6.3482 e-08 |物流| | | 14日接受| 0.00069682 | 9.9849 | 0.00066515 | 0.00065022 |15 7.5612 e-08 |物流| | |接受| 0.00066515 | 8.1818 | 0.00066515 | 0.00065314 | 8.6693 e-08 |物流| | | 16日接受| 0.00069682 | 9.1597 | 0.00066515 | 0.00066257 | 9.3481 e-08 |物流| | | 17日接受| 0.00076017 | 5.9323 | 0.00066515 | 0.00066275 | 8.4679平台以及物流| | | | 18日接受| 0.00088686 | 13.14 | 0.00066515 | 0.00066414 | 3.0816 e-07 |物流| | | 19日接受| 0.0012669 | 7.6276 | 0.00066515 | 0.00066548 | 0.0008715 |支持向量机| | 20 |接受| 0.00085519 | 5.7376 |0.00066515 | 0.00066703 | 5.2543 e-05 | svm | |=====================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar |λ|学生| | |结果| |运行时| | (estim(观察) .) | | | |=====================================================================================================| | 21日|接受| 0.00091854 | 4.8697 | 0.00066515 | 0.00066729 | 0.00023384 |支持向量机| | | 22日接受| 0.00079184 |10.853 | 0.00066515 | 0.00066745 | 4.1954e-06 | svm | | 23 | Accept | 0.0010452 | 25.604 | 0.00066515 | 0.00068253 | 7.1565e-06 | logistic | | 24 | Accept | 0.0010136 | 26.681 | 0.00066515 | 0.00067696 | 1.9805e-06 | logistic | | 25 | Accept | 0.00079184 | 8.4275 | 0.00066515 | 0.00067719 | 1.2205e-06 | svm | | 26 | Accept | 0.00076017 | 9.2075 | 0.00066515 | 0.00068293 | 3.6687e-08 | logistic | | 27 | Accept | 0.00076017 | 7.8866 | 0.00066515 | 0.00068328 | 9.8797e-09 | svm | | 28 | Accept | 0.00082351 | 10.111 | 0.00066515 | 0.00068351 | 1.2236e-05 | svm | | 29 | Accept | 0.049221 | 1.0949 | 0.00066515 | 0.00068257 | 3.1358 | logistic | | 30 | Accept | 0.0013303 | 11.363 | 0.00066515 | 0.00067789 | 0.00072735 | logistic |
__________________________________________________________ 优化完成。最大目标达到30个。总函数评估:30总运行时间:313.2648秒总目标函数评估时间:278.1766最佳观测可行点:Lambda Learner __________ ________ 1.9706e-07 logistic观测目标函数值= 0.00066515估计目标函数值= 0.00073542函数评估时间= 9.1424最佳估计可行点(根据模型):Lambda Learner __________ ________ 8.6693e-08 logistic估计目标函数值= 0.00067789估计函数评估时间= 8.7508
Mdl = ClassificationLinear ResponseName: 'Y' ClassNames: [0 1] ScoreTransform: 'logit' Beta: [34023x1 double]偏差:-10.0538 Lambda: 8.6693e-08学习者:'logistic'属性,方法
列车线性分类模型
使用支持向量机、双SGD和山脊正则化训练二元线性分类模型。金宝app 加载NLP数据集。 识别与“统计和机器学习工具箱”文档网页对应的标签。 训练一个二进制线性分类模型,可以识别文档网页中的字数是否来自统计和机器学习工具箱™文档。使用整个数据集训练模型。通过提取拟合摘要来确定优化算法对模型与数据的拟合程度。负载
X
Ystats = Y ==
rng (1);
Mdl = ClassificationLinear ResponseName: 'Y' ClassNames: [0 1] ScoreTransform: 'none' Beta: [34023x1 double]偏差:-1.0059 Lambda: 3.1674e-05学习者:'svm'属性,方法
FitInfo =
Mdl
FitInfo
使用交叉验证找到好的套索惩罚
为了确定使用逻辑回归学习器的线性分类模型的良好套索惩罚强度,实现5倍交叉验证。 加载NLP数据集。 这些模型应该识别网页中的字数是否来自统计和机器学习工具箱™文档。因此,确定与统计和机器学习工具箱™文档网页对应的标签。 创建一组11个对数间隔的正则化强度 交叉验证模型。要提高执行速度,可以调换预测器数据,并指定观察值为列。用SpaRSA估计系数。将目标函数的梯度公差降低到 显示第一个训练好的线性分类模型。 估计交叉验证的分类误差。 因为有11个正则化优势, 较高的值 在同一图中,绘制交叉验证,分类错误率和每个正则化强度的非零系数的频率。在对数尺度上画出所有变量。 选择正则化强度的指标,以平衡预测变量稀疏性和低分类错误。在本例中,为之间的值 从负载
X
Ystats = Y ==
Lambda = logspace(-6,-0.5,11);
X = X';rng (10);
CVMdl = ClassificationPartitionedLinear CrossValidatedModel: 'Linear' ResponseName: 'Y' NumObservations: 31572 KFold: 5 Partition: [1x1 cvpartition] ClassNames: [0 1] ScoreTransform: 'none'属性,方法
numCLModels = nummel (CVMdl.Trained)
numCLModels = 5
CVMdl
Mdl1 = CVMdl。训练有素的{1}
Mdl1 = ClassificationLinear ResponseName: 'Y' ClassNames: [0 1] ScoreTransform: 'logit' Beta: [34023x11 double]偏差:[-13.1918 -13.1918 -13.1918 -13.1918 -9.0803 -7.1989…[Lambda: [1.0000e-06 3.5481e-06 1.2589e-05 4.4668e-05…]学习者:“逻辑”属性,方法
Mdl1
ce = kfoldLoss(CVMdl);
Mdl = fitclinear(X,Ystats,
图;[h,hL1,hL2] = plotyy(log10(Lambda),log10(ce),
idxFinal = 7;
MdlFinal = selectModels(Mdl,idxFinal);
MdlFinal
优化线性分类器
这个例子展示了如何最小化线性分类器中的交叉验证错误 加载NLP数据集。 这些模型应该识别网页中的字数是否来自统计和机器学习工具箱™文档。识别相关标签。 类优化分类 为了重现性,设置随机种子并使用负载
X
X = X';Ystats = Y ==
rng
|=====================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar |λ|学生| | |结果| |运行时| | (estim(观察) .) | | | |=====================================================================================================| | 最好1 | | 0.041619 | 7.9197 | 0.041619 | 0.041619 | 0.077903 |物流| | 2 |最好| 0.00072849 | 8.6074 | 0.00072849 | 0.0028767 | 2.1405 e-09 |物流| | 3 |接受| 0.049221 | 9.0699 | 0.00072849 | 0.00075737 | 0.72101 |支持向量机| | 4 |接受| 0.00079184 | 7.8816 | 0.00072849 | 0.00074989 | 3.4734 e-07 |支持向量机| | 5 |接受| 0.00076017 | 7.3993 | 0.00072849 | 0.00072915 | 1.1738 e-08 |物流| | 6 |接受| 0.00085519 | 8.5031 | 0.00072849 | 0.00072735 | 2.473 e-09 |支持向量机| | | 7日接受| 0.00079184 | 7.0025 | 0.00072849 | 0.00072504 | 3.1854 e-08 |支持向量机| | |接受8 | 0.00088686 | 7.7765 | 0.00072849 | 0.00072219 | 3.1717平台以及|支持向量机| | | 9日接受| 0.00076017 | 6.4699 | 0.00072849 | 0.00068087 | 3.1837平台以及物流| | | |接受10 | 0.00079184 | 7.9615 | 0.00072849 | 0.00072894 | 1.1258 e-07 |支持向量机| | | 11日接受| 0.00072849 | 7.3135 | 0.00072849 | 0.00070014 | 3.0254 e-09 |物流| | 12最好| | 0.00066515 | 9.1424 | 0.00066515 | 0.00074706 | 1.9706 e-07 |物流| | | 13日接受| 0.00066515 | 7.2682 | 0.00066515 | 0.00062538 | 6.3482 e-08 |物流| | | 14日接受| 0.00069682 | 9.9849 | 0.00066515 | 0.00065022 |15 7.5612 e-08 |物流| | |接受| 0.00066515 | 8.1818 | 0.00066515 | 0.00065314 | 8.6693 e-08 |物流| | | 16日接受| 0.00069682 | 9.1597 | 0.00066515 | 0.00066257 | 9.3481 e-08 |物流| | | 17日接受| 0.00076017 | 5.9323 | 0.00066515 | 0.00066275 | 8.4679平台以及物流| | | | 18日接受| 0.00088686 | 13.14 | 0.00066515 | 0.00066414 | 3.0816 e-07 |物流| | | 19日接受| 0.0012669 | 7.6276 | 0.00066515 | 0.00066548 | 0.0008715 |支持向量机| | 20 |接受| 0.00085519 | 5.7376 |0.00066515 | 0.00066703 | 5.2543 e-05 | svm | |=====================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar |λ|学生| | |结果| |运行时| | (estim(观察) .) | | | |=====================================================================================================| | 21日|接受| 0.00091854 | 4.8697 | 0.00066515 | 0.00066729 | 0.00023384 |支持向量机| | | 22日接受| 0.00079184 |10.853 | 0.00066515 | 0.00066745 | 4.1954e-06 | svm | | 23 | Accept | 0.0010452 | 25.604 | 0.00066515 | 0.00068253 | 7.1565e-06 | logistic | | 24 | Accept | 0.0010136 | 26.681 | 0.00066515 | 0.00067696 | 1.9805e-06 | logistic | | 25 | Accept | 0.00079184 | 8.4275 | 0.00066515 | 0.00067719 | 1.2205e-06 | svm | | 26 | Accept | 0.00076017 | 9.2075 | 0.00066515 | 0.00068293 | 3.6687e-08 | logistic | | 27 | Accept | 0.00076017 | 7.8866 | 0.00066515 | 0.00068328 | 9.8797e-09 | svm | | 28 | Accept | 0.00082351 | 10.111 | 0.00066515 | 0.00068351 | 1.2236e-05 | svm | | 29 | Accept | 0.049221 | 1.0949 | 0.00066515 | 0.00068257 | 3.1358 | logistic | | 30 | Accept | 0.0013303 | 11.363 | 0.00066515 | 0.00067789 | 0.00072735 | logistic |
__________________________________________________________ 优化完成。最大目标达到30个。总函数评估:30总运行时间:313.2648秒总目标函数评估时间:278.1766最佳观测可行点:Lambda Learner __________ ________ 1.9706e-07 logistic观测目标函数值= 0.00066515估计目标函数值= 0.00073542函数评估时间= 9.1424最佳估计可行点(根据模型):Lambda Learner __________ ________ 8.6693e-08 logistic估计目标函数值= 0.00067789估计函数评估时间= 8.7508
Mdl = ClassificationLinear ResponseName: 'Y' ClassNames: [0 1] ScoreTransform: 'logit' Beta: [34023x1 double]偏差:-10.0538 Lambda: 8.6693e-08学习者:'logistic'属性,方法
输入参数
X- - - - - -预测数据
完整的矩阵|稀疏矩阵
预测器数据,指定为n——- - - - - -p全矩阵或稀疏矩阵。
的长度Y观察的次数X必须是相等的。
请注意
如果你定位你的预测矩阵,使观察结果与列相对应,并指定“ObservationsIn”、“列”,那么优化执行时间可能会显著减少。
数据类型:单|双
Y- - - - - -类标签
分类数组|字符数组|字符串数组|逻辑向量|数值向量|字符向量的单元格数组
分类模型训练到的类标签,指定为类别、字符或字符串数组、逻辑或数字向量或字符向量的单元格数组。
fitclinear金宝app只支持二进制分类。要么Y必须包含两个完全不同的类,或者必须使用“类名”名称-值对参数。关于多课学习,请参见fitcecoc.
的长度Y必须等于中的观测数X或资源描述.
如果Y是字符数组,则每个标签必须对应数组中的一行。
类指定类顺序是一个很好的实践一会名称-值对参数。
数据类型:字符|字符串|细胞|分类|逻辑|单|双
资源描述- - - - - -样本数据
表格
用于训练模型的示例数据,指定为表。每行资源描述对应一个观测值,每一列对应一个预测变量。不允许使用字符向量的单元格数组以外的多列变量和单元格数组。
可选地,资源描述可以包含响应变量的一列和观测权重的一列。
响应变量必须是类别、字符或字符串数组、逻辑或数字向量或字符向量的单元格数组。
fitclinear金宝app只支持二进制分类。响应变量必须包含恰好两个不同的类,或者必须使用一会名称-值参数。关于多课学习,请参见fitcecoc.
类在响应变量中指定类的顺序是一种良好的实践一会名称-值参数。
权重的列必须是数字向量。
中必须指定响应变量资源描述通过使用ResponseVarName或公式并指定观测权重资源描述通过使用权重.
通过使用指定响应变量ResponseVarName- - - - - -fitclinear使用其余变量作为预测器。中剩余变量的子集资源描述作为预测器,使用指定预测器变量PredictorNames.
使用定义模型规范公式- - - - - -fitclinear中的变量的子集资源描述作为预测变量和响应变量,如公式.
如果资源描述不包含响应变量,然后通过使用Y.响应变量的长度Y和进去的行数资源描述必须是相等的。中变量的子集资源描述作为预测器,使用指定预测器变量PredictorNames.
数据类型:表格
ResponseVarName- - - - - -响应变量名
变量名资源描述
响应变量名,指定为中的变量名资源描述.
您必须指定ResponseVarName作为字符向量或字符串标量。例如,如果响应变量Y存储为资源描述。Y,然后指定为“Y”.否则,软件处理的所有列资源描述,包括Y,作为训练模型时的预测因子。
响应变量必须是类别、字符或字符串数组;向量:逻辑或数字向量;或者是字符向量的单元格数组。如果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,…,以=家,在那里名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来名字在报价。
例子:“ObservationsIn”、“列”、“学习者”,“物流”、“CrossVal”,“上”指定预测器矩阵的列对应于观察值,实现逻辑回归,实现10倍交叉验证。
请注意
方法时,不能使用任何交叉验证名称-值参数“OptimizeHyperparameters”名称-值参数。您可以修改交叉验证“OptimizeHyperparameters”只有使用“HyperparameterOptimizationOptions”名称-值参数。
线性分类选项
λ- - - - - -正则化项强度
“汽车”
(默认)|负的标量|非负值的向量
正则化术语的强度,指定为由逗号分隔的对组成“λ”而且“汽车”,一个非负的标量,或者一个非负的值的向量。
为“汽车”,λ= 1 /n.
如果指定了交叉验证、名值对参数(例如,CrossVal),然后n是折叠观察数。
否则,n是训练样本量。
对于一个非负值的向量,fitclinear中每个不同值依次优化目标函数λ按升序排列。
如果解算器是“sgd”或“asgd”而且正则化是“套索”,fitclinear不使用以前的系数估计作为温暖的开始用于下一个优化迭代。否则,fitclinear使用热启动。
如果正则化是“套索”时,则任意系数估计值为0时,均保持其值fitclinear中的后续值进行优化λ.
fitclinear返回每个指定正则化强度的系数估计值。
例子:“λ”,10 ^ (- (10:2:2))
数据类型:字符|字符串|双|单
学习者- - - - - -线性分类模型类型
“支持向量机”
(默认)|“物流”
线性分类模型类型,指定为由逗号分隔的对组成“学习者”而且“支持向量机”或“物流”.
在这个表格中,
β的向量p系数。
x是来自p预测变量。
b是标量偏置。
价值
算法
响应范围
损失函数
“支持向量机”
金宝app支持向量机
y∊{1};正类为1,其他为-1
铰链:
“物流”
逻辑回归
一样“支持向量机”
异常(物流):
例子:“学习者”,“物流”
ObservationsIn- - - - - -预测器数据观测维数
“行”
(默认)|“列”
预测器数据观测维数,指定为“行”或“列”.
请注意
如果你定位你的预测矩阵,使观察结果与列相对应,并指定“ObservationsIn”、“列”,那么您可能会经历计算时间的显著减少。你不能指定“ObservationsIn”、“列”用于表中的预测器数据。
例子:“ObservationsIn”、“列”
数据类型:字符|字符串
正则化- - - - - -复杂性惩罚类型
“套索”
|“岭”
复杂度惩罚类型,指定为由逗号分隔的对组成“正规化”而且“套索”或“岭”.
该软件从平均损失函数的和组成最小化的目标函数(见学习者)和该表中的正则化项。
价值
描述
“套索”
套索(L1)惩罚:
“岭”
脊(L2)惩罚:
要指定正则化项的强度,即λ在表达式中,使用λ.
该软件排除偏差项(β0)从正规化惩罚。
如果解算器是“sparsa”,则为默认值正则化是“套索”.否则,默认为“岭”.
提示
对于预测变量选择,请指定“套索”.有关变量选择的更多信息,请参见特征选择简介.
为了优化精度,请指定“岭”.
例子:“正规化”、“套索”
解算器- - - - - -目标函数最小化技术
“sgd”
|“asgd”
|“双重”
|“蓄热”|“lbfgs”|“sparsa”|字符串数组|字符向量的单元格数组
目标函数最小化技术,指定为逗号分隔对组成“规划求解”一个字符向量或字符串标量,一个字符串数组,或一个单元格数组的字符向量的值从这个表。
价值
描述
限制
“sgd”
随机梯度下降(SGD)[4][2]
“asgd”
平均随机梯度下降(ASGD)[7]
“双重”
支持向量机的双SGD[1][6]
正则化
必须“岭”而且学习者必须“支持向量机”.
“蓄热”
Broyden-Fletcher-Goldfarb-Shanno准牛顿算法(BFGS)[3]
效率低下,如果X是非常高维的。
“lbfgs”
有限内存BFGS (LBFGS)[3]
正则化必须“岭”.
“sparsa”
基于可分离近似的稀疏重建[5]
正则化必须“套索”.
如果你指定:
山脊惩罚(见正则化),X包含100个或更少的预测变量,则默认解算器为“蓄热”.
支持向量机模型(见学习者)、山脊惩罚,以及X包含超过100个预测变量,则默认解算器为“双重”.
套索罚X包含100个或更少的预测变量,则默认解算器为“sparsa”.
否则,默认解算器为“sgd”.请注意,在执行超参数优化时,默认求解器可以更改。有关更多信息,请参见正则化方法决定了超参数优化中使用的求解器.
如果指定求解器名称的字符串数组或单元格数组,则λ,软件采用求解器的解金宝搏官方网站j作为求解的一个温暖的开始j+ 1。
例子:{“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)
(默认)|数值向量|数字矩阵
初始线性系数估计值(β),指定为逗号分隔的对,由“β”和一个p-维数字向量或ap——- - - - - -l数字矩阵。p预测变量的数量在吗X而且l正则化强度值的数量(有关详细信息,请参阅λ).
如果您指定p-维向量,然后软件对目标函数进行优化l使用此过程的次数。
软件优化使用β的初始值和最小值λ作为正则化强度。
该软件再次优化使用结果估计从以前的优化作为一个温暖的开始中次小的值λ作为正则化强度。
软件执行第2步,直到耗尽所有的值λ.
如果您指定p——- - - - - -l矩阵,然后软件对目标函数进行优化l次了。在迭代j,软件使用β(:,j)作为初始值,在排序之后λ按升序使用λ(j)作为正则化强度。
如果你设置“规划求解”、“双”,那么软件就会忽略β.
数据类型:单|双
偏见- - - - - -初始截距估计
数字标量|数值向量
初步截距估计(b),指定为逗号分隔的对,由“偏见”和一个数值标量或l-维数值向量。l正则化强度值的数量(有关详细信息,请参阅λ).
如果您指定一个标量,那么软件将优化目标函数l使用此过程的次数。
软件优化使用偏见的初始值和最小值λ作为正则化强度。
使用结果估计作为下一个优化迭代的温暖开始,并在中使用下一个最小值λ作为正则化强度。
软件执行第2步,直到耗尽所有的值λ.
如果您指定l-维向量,然后软件对目标函数进行优化l次了。在迭代j,软件使用偏差(j)作为初始值,在排序之后λ按升序使用λ(j)作为正则化强度。
默认情况下:
如果学习者是“物流”,那么让gj如果是1Y (j)为正类,否则为-1。偏见是加权平均的吗g用于训练或交叉验证,内叠观察。
如果学习者是“支持向量机”,然后偏见是0。
数据类型:单|双
FitBias- - - - - -线性模型截距包含标志
真正的
(默认)|假
线性模型截距包含标志,指定为由逗号分隔的对组成“FitBias”而且真正的或假.
价值
描述
真正的
该软件包括偏差项b在线性模型中,然后估计它。
假
软件集b在估计期间= 0。
例子:“FitBias”,假的
数据类型:逻辑
PostFitBias- - - - - -标志拟合优化后的线性模型截距
假
(默认)|真正的
标志来拟合优化后的线性模型截距,指定为由逗号分隔的对组成“PostFitBias”而且真正的或假.
价值
描述
假
软件估计偏差项b这些系数β在优化。
真正的
估计b,软件:
估计β而且b使用模型
估计分类分数
不菲b通过在分类分数上设置阈值来获得最大的准确性
如果你指定真正的,然后FitBias一定是真的。
例子:“PostFitBias”,真的
数据类型:逻辑
详细的- - - - - -冗长的水平
0
(默认)|非负整数
详细级别,指定为逗号分隔的对,由“详细”和一个非负整数。详细的控制诊断信息的数量fitclinear在命令行中显示。
价值
描述
0
fitclinear不显示诊断信息。
1
fitclinear周期性地显示和存储目标函数、梯度幅度和其他诊断信息的值。FitInfo。历史包含诊断信息。
任意正整数
fitclinear在每次优化迭代中显示和存储诊断信息。FitInfo。历史包含诊断信息。
例子:“详细”,1
数据类型:双|单
SGD和ASGD求解器选项
BatchSize- - - - - -Mini-batch大小
正整数
小批量大小,指定为由逗号分隔的对组成“BatchSize”一个正整数。在每次迭代中,软件估计次梯度使用BatchSize训练数据的观察结果。
如果X是一个数字矩阵,那么默认值是10.
如果X是稀疏矩阵,那么默认值是马克斯([10日装天花板(sqrt (ff)))),在那里ff = numel(X)/nnz(X)(丰满的因素的X).
例子:“BatchSize”,100年
数据类型:单|双
LearnRate- - - - - -学习速率
积极的标量
学习率,指定为由逗号分隔的对组成“LearnRate”一个正标量。LearnRate通过缩放次梯度来控制优化步长。
如果正则化是“岭”,然后LearnRate初始学习率γ0.fitclinear确定迭代的学习率t,γt,使用
λ的值λ.
如果解算器是“sgd”,然后c= 1。
如果解算器是“asgd”,然后c是0.75[7].
如果正则化是“套索”,则对于所有迭代,LearnRate是恒定的。
默认情况下,LearnRate是1 /√(1 +马克斯(sum (x ^ 2, obsDim)))),在那里obsDim是1如果观测数据构成预测数据的列X,2否则。
例子:“LearnRate”,0.01
数据类型:单|双
OptimizeLearnRate- - - - - -标志降低学习率
真正的
(默认)|假
标志,以在软件检测到发散(即超过最小值)时降低学习率,指定为逗号分隔的对,由“OptimizeLearnRate”而且真正的或假.
如果OptimizeLearnRate是“真正的”,那么:
对于很少的优化迭代,软件开始优化使用LearnRate作为学习率。
如果目标函数值增加,则软件重新启动并使用当前学习率值的一半。
软件迭代第2步,直到目标函数减小。
例子:“OptimizeLearnRate”,真的
数据类型:逻辑
TruncationPeriod- - - - - -套索截断运行之间的小批数量
10
(默认)|正整数
套索截断运行之间的小批数,指定为逗号分隔的对,由“TruncationPeriod”一个正整数。
截断运行后,软件应用软阈值的线性系数。即加工后k=TruncationPeriod小批量,软件截断估计的系数j使用
SGD,
是系数的估计吗j处理后kmini-batches。
γt 迭代时的学习率是多少t.λ的值λ.
ASGD,
是平均估计系数吗j处理后kmini-batches,
如果正则化是“岭”,那么软件就会忽略TruncationPeriod.
例子:“TruncationPeriod”,100年
数据类型:单|双
其他分类选择
CategoricalPredictors- - - - - -分类预测器列表
正整数向量|逻辑向量|字符矩阵|字符串数组|字符向量的单元格数组|“所有”
类别预测符列表,指定为此表中的值之一。描述假设预测器数据在行中有观测值,在列中有预测器。
价值
描述
正整数向量
向量中的每个条目都是一个指标值,表明相应的预测器是分类的。索引值在1和之间p,在那里p用于训练模型的预测器的数量。如果fitclinear使用输入变量的子集作为预测器,然后函数仅使用该子集对预测器进行索引。的CategoricalPredictors值不计算响应变量、观察权重变量或函数不使用的任何其他变量。
逻辑向量
一个真正的Entry表示对应的预测器是分类的。向量的长度是p.
字符矩阵
矩阵的每一行都是一个预测变量的名称。名称必须与中的条目匹配PredictorNames.用额外的空格填充名字,这样字符矩阵的每一行都有相同的长度。
字符向量的字符串数组或单元格数组
数组中的每个元素都是一个预测变量的名称。名称必须与中的条目匹配PredictorNames.
“所有”
所有预测因素都是绝对的。
默认情况下,如果预测器数据在表(资源描述),fitclinear如果一个变量是逻辑向量、分类向量、字符数组、字符串数组或字符向量的单元格数组,则假定该变量是分类的。如果预测器数据为矩阵(X),fitclinear假设所有预测因子都是连续的。要将任何其他预测符标识为类别预测符,请使用“CategoricalPredictors”名称-值参数。
对于已识别的分类预测因子,fitclinear使用两种不同的方案创建虚拟变量,具体取决于分类变量是无序的还是有序的。对于一个无序分类变量,fitclinear为分类变量的每一层创建一个虚拟变量。对于有序分类变量,fitclinear创建的虚拟变量比类别数少一个。详细信息请参见自动创建虚拟变量.
例子:“CategoricalPredictors”、“所有”
数据类型:单|双|逻辑|字符|字符串|细胞
一会- - - - - -用于培训的类名
分类数组|字符数组|字符串数组|逻辑向量|数值向量|字符向量的单元格数组
用于训练的类名,指定为类别、字符或字符串数组;向量:逻辑或数字向量;或者是字符向量的单元格数组。一会必须具有与响应变量相同的数据类型资源描述或Y.
如果一会是字符数组,则每个元素必须对应数组中的一行。
使用一会:
在培训期间指定课程的顺序。
指定与类顺序对应的任何输入或输出参数维度的顺序。例如,使用一会指定…尺寸的顺序成本或返回的分类分数的列顺序预测.
选择用于培训的类的子集。例如,假设集合中所有不同的类名Y是(“a”、“b”、“c”).用课堂上的观察来训练模型“一个”而且“c”只是,指定“类名”,(“a”、“c”).
的默认值一会响应变量中所有不同类名的集合在吗资源描述或Y.
例子:“类名”,(“b”,“g”)
数据类型:分类|字符|字符串|逻辑|单|双|细胞
成本- - - - - -误分类代价
方阵|结构数组
错误分类代价,指定为逗号分隔的对,由“成本”一个方阵或结构。
如果你指定了方阵成本(“成本”,成本),然后成本(i, j)将一个点分类的成本是多少j如果它真正的阶级是我.也就是说,行对应于真实的类,列对应于预测的类。的相应行和列的类顺序成本,使用一会名称-值对参数。
如果你指定了结构年代(“成本”),那么它必须有两个字段:
S.ClassNames,其中包含类名作为与Y
S.ClassificationCosts,其中包含成本矩阵,其行和列的顺序为S.ClassNames
的默认值成本是(K) -眼睛(K),在那里K是不同类的数量。
fitclinear使用成本中指定的优先类概率之前.然后,fitclinear使用调整后的先验概率进行训练。
例子:“成本”,[0 2;1 0]
数据类型:单|双|结构体
PredictorNames- - - - - -预测变量名称
唯一名称的字符串数组|唯一字符向量的单元格数组
预测器变量名,指定为唯一名称的字符串数组或唯一字符向量的单元格数组。的功能“PredictorNames”这取决于你提供训练数据的方式。
如果你提供X而且Y,那么你就可以使用了“PredictorNames”中预测变量的名称X.
里面名字的顺序PredictorNames必须与预测器的顺序相对应吗X.假设X具有默认方向,在行中观察,在列中预测,PredictorNames {1}名字是X (: 1),PredictorNames {2}名字是X (:, 2)等等。同时,大小(X, 2)而且元素个数(PredictorNames)必须是相等的。
默认情况下,PredictorNames是{x1, x2,…}.
如果你提供资源描述,那么你就可以使用了“PredictorNames”选择在训练中使用哪些预测变量。也就是说,fitclinear中仅使用预测变量PredictorNames以及训练中的响应变量。
PredictorNames的子集Tbl.Properties.VariableNames并且不能包括响应变量的名称。
默认情况下,PredictorNames包含所有预测变量的名称。
一个好的实践是使用其中一种来指定训练的预测器“PredictorNames”或公式,但不是两者都有。
例子:PredictorNames,{‘SepalLength’,‘SepalWidth’,‘PetalLength’,‘PetalWidth}
数据类型:字符串|细胞
之前- - - - - -先验概率
“经验”
(默认)|“统一”
|数值向量|结构数组
每个类的先验概率,由逗号分隔的对组成“之前”而且“经验”,“统一”、数字向量或结构数组。
下表总结了设置先验概率的可用选项。
价值
描述
“经验”
类先验概率是类的相对频率Y.
“统一”
所有类先验概率都等于1/K,在那里K是类的数量。
数值向量
每个元素都是一个类先验概率。根据元素的顺序排列Y.方法指定顺序“类名”参数,然后对元素进行相应的排序。
结构数组
一个结构年代有两个字段:
S.ClassNames作为相同类型的变量包含类名Y.
S.ClassProbs包含相应先验概率的向量。
fitclinear的先验概率归一化之前和为1。
例子:“之前”,结构(“类名”,{{“setosa”、“癣”}},ClassProbs, 1:2)
数据类型:字符|字符串|双|单|结构体
ResponseName- - - - - -响应变量名
“Y”
(默认)|特征向量|字符串标量
响应变量名,指定为字符向量或字符串标量。
如果你提供Y,那么你就可以使用了ResponseName为响应变量指定名称。
如果你提供ResponseVarName或公式,那么你就不能用了ResponseName.
例子:“ResponseName”、“反应”
数据类型:字符|字符串
ScoreTransform- - - - - -分数转换
“没有”
(默认)|“doublelogit”
|“invlogit”
|“ismax”|“分对数”|函数处理|……
分数转换,指定为字符向量、字符串标量或函数句柄。
该表总结了可用的字符向量和字符串标量。
价值
描述
“doublelogit”
1 / (1 +e2x )
“invlogit”
日志(x/ (1 -x))
“ismax”
将得分最大的类的得分设置为1,并将所有其他类的得分设置为0
“分对数”
1 / (1 +e- - - - - -x )
“没有”或“身份”
x(转换)
“标志”
1x< 0为0x= 01x> 0
“对称”
2x- 1
“symmetricismax”
将得分最大的类的得分设置为1,并将所有其他类的得分设置为-1
“symmetriclogit”
2 / (1 +e- - - - - -x ) - 1
对于MATLAB函数或您定义的函数,使用其函数句柄进行分数转换。函数句柄必须接受一个矩阵(原始分数)并返回一个相同大小的矩阵(转换后的分数)。
例子:“ScoreTransform”、“分对数”
数据类型:字符|字符串|function_handle
权重- - - - - -观察权重
非负数值向量|变量名资源描述
中指定为非负数值向量或变量名的观测权重资源描述.软件对每个观察结果进行加权X或资源描述中对应的值权重.的长度权重必须等于中的观察数X或资源描述.
如果将输入数据指定为表资源描述,然后权重可以是变量名中的资源描述它包含一个数值向量。在这种情况下,您必须指定权重作为字符向量或字符串标量。例如,如果权重向量W存储为资源描述。W,然后指定为' W '.否则,软件处理的所有列资源描述,包括W,作为预测因子或训练模型时的响应变量。
默认情况下,权重是的(n, 1),在那里n观察的数量在吗X或资源描述.
软件规范化权重求和为各类别的先验概率值。
数据类型:单|双|字符|字符串
交叉验证选择
CrossVal- - - - - -交叉验证标志
“关闭”
(默认)|“上”
交叉验证标志,指定为逗号分隔的对,由“Crossval”而且“上”或“关闭”.
如果你指定“上”,然后软件实现10倍交叉验证。
若要重写此交叉验证设置,请使用以下名称-值对参数之一:CVPartition,坚持,或KFold.要创建交叉验证的模型,一次只能使用一个交叉验证的名称-值对参数。
例子:“Crossval”,“上”
坚持- - - - - -顽固性验证的数据比例
范围(0,1)中的标量值
用于拒绝验证的数据的百分比,指定为逗号分隔的对,由“坚持”和范围(0,1)中的标量值。如果你指定“坚持”,p
,然后软件:
随机储备p
* 100%的数据作为验证数据,并使用其余数据训练模型
中存储紧凑的训练过的模型训练有素的交叉验证模型的属性。
要创建交叉验证的模型,您只能使用以下四个选项之一:'CVPartition
','坚持',或'KFold
'.
例子:“坚持”,0.1
数据类型:双|单
KFold- - - - - -折叠数
10
(默认)|大于1的正整数值
交叉验证分类器中使用的折叠数,指定为逗号分隔的对,由“KFold”一个大于1的正整数。如果你指定,例如,“KFold”,k,然后软件:
将数据随机划分为k集
对于每个集合,保留该集合作为验证数据,并使用另一个集合训练模型k- 1集
存储k紧凑,训练模型的细胞k的-by-1单元格向量训练有素的交叉验证模型的属性。
要创建交叉验证的模型,您只能使用以下四个选项之一:'CVPartition
','坚持
',或'KFold'.
例子:“KFold”,8
数据类型:单|双
SGD和ASGD收敛控制
BatchLimit- - - - - -最大批次数
正整数
要处理的最大批数,指定为逗号分隔的对,由“BatchLimit”一个正整数。当软件处理时BatchLimit批量,它终止优化。
默认情况下:
软件通过这些数据PassLimit次了。
如果指定多个求解器,并使用(A)SGD来获得下一个求解器的初始近似值,则默认值为装天花板(1 e6 / BatchSize).BatchSize是值'BatchSize
'名称-值对参数。
如果你指定BatchLimit,然后fitclinear也使用导致处理最少观测值的参数BatchLimit或PassLimit.
例子:“BatchLimit”,100年
数据类型:单|双
BetaTolerance- - - - - -线性系数和偏置项的相对公差
1的军医
(默认)|负的标量
对线性系数和偏置项(截距)的相对公差,指定为逗号分隔的对,由“BetaTolerance”一个非负标量。
让
,即优化迭代时的系数向量和偏置项t.如果
,则优化终止。
中指定的最后一个求解器,如果该软件收敛解算器,则优化终止。否则,软件将使用中指定的下一个求解器解算器.
例子:e-6 BetaTolerance, 1
数据类型:单|双
NumCheckConvergence- - - - - -下一次收敛检查前要处理的批次数
正整数
在下一次收敛检查之前要处理的批数,指定为由逗号分隔的对组成“NumCheckConvergence”一个正整数。
要指定批处理大小,请参见BatchSize.
默认情况下,每次通过整个数据集,软件都会检查大约10次收敛性。
例子:“NumCheckConvergence”,100年
数据类型:单|双
PassLimit- - - - - -最大通过次数
1
(默认)|正整数
通过数据的最大次数,指定为逗号分隔的对,由“PassLimit”一个正整数。
fitclinear当它完成一次数据传递时处理所有观察。
当fitclinear传递数据PassLimit多次,它会终止优化。
如果你指定BatchLimit,然后fitclinear也使用导致处理最少观测值的参数BatchLimit或PassLimit.
例子:“PassLimit”,5
数据类型:单|双
ValidationData- - - - - -优化收敛检测的验证数据
单元阵列|表格
用于优化收敛检测的验证数据,指定为由逗号分隔的对组成“ValidationData”一个单元格数组或表格。
在优化过程中,软件定期估计损失ValidationData.如果验证数据丢失增加,则软件终止优化。详情请参见算法.若要使用交叉验证优化超参数,请参阅交叉验证选项,例如CrossVal.
你可以指定ValidationData如果你用桌子的话,就像桌子一样资源描述包含响应变量的预测器数据。在这种情况下,ValidationData必须包含相同的预测器和响应包含在资源描述.该软件不会对观察结果施加权重,即使资源描述包含一个权重向量。要指定权重,必须指定ValidationData作为单元格数组。
如果你指定ValidationData作为单元格数组,它必须具有以下格式:
ValidationData {1}必须具有与预测器数据相同的数据类型和方向。也就是说,如果你使用预测矩阵X,然后ValidationData {1}一定是米——- - - - - -p或p——- - - - - -米具有相同方向的预测器数据的完整或稀疏矩阵X.训练数据中的预测变量X而且ValidationData {1}必须对应。类似地,如果你使用预测表资源描述那么,预测者的数据ValidationData {1}必须是包含相同预测变量的表资源描述.的观测数ValidationData {1}而且预测数据可能会有所不同。
ValidationData {2}必须匹配响应变量的数据类型和格式吗Y或ResponseVarName.如果ValidationData {2}是一个类标签的数组,那么它必须有相同数量的元素作为观察的数量ValidationData {1}.的所有不同标签的集合ValidationData {2}必须是所有不同标签的子集Y.如果ValidationData {1}那是桌子吗ValidationData {2}可以是表中响应变量的名称。如果你想用同样的ResponseVarName或公式,您可以指定ValidationData {2}作为[].
您可以指定ValidationData {3}作为一个米-维数向量的观测权重或表中变量的名称ValidationData {1}这包含了观察权重。该软件用验证数据规范化权重,使它们的和为1。
如果你指定ValidationData并且要在命令行上显示验证损失,请为其指定大于0的值详细的.
中指定的最后一个求解器,如果该软件收敛解算器,则优化终止。否则,软件将使用中指定的下一个求解器解算器.
默认情况下,软件不会通过监测验证数据丢失来检测收敛性。
双SGD收敛控制
BetaTolerance- - - - - -线性系数和偏置项的相对公差
1的军医
(默认)|负的标量
对线性系数和偏置项(截距)的相对公差,指定为逗号分隔的对,由“BetaTolerance”一个非负标量。
让
,即优化迭代时的系数向量和偏置项t.如果
,则优化终止。
如果你还指定DeltaGradientTolerance,当软件满足任意一个停止条件时,优化终止。
中指定的最后一个求解器,如果该软件收敛解算器,则优化终止。否则,软件将使用中指定的下一个求解器解算器.
例子:e-6 BetaTolerance, 1
数据类型:单|双
DeltaGradientTolerance- - - - - -Gradient-difference宽容
1
(默认)|负的标量
上下池之间的梯度差公差Karush-Kuhn-Tucker (KKT)互补条件违规者,指定为逗号分隔的对,由“DeltaGradientTolerance”一个非负标量。
如果KKT违反者的量级小于DeltaGradientTolerance,则软件终止优化。
中指定的最后一个求解器,如果该软件收敛解算器,则优化终止。否则,软件将使用中指定的下一个求解器解算器.
例子:依照“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}一定是米——- - - - - -p或p——- - - - - -米具有相同方向的预测器数据的完整或稀疏矩阵X.训练数据中的预测变量X而且ValidationData {1}必须对应。类似地,如果你使用预测表资源描述那么,预测者的数据ValidationData {1}必须是包含相同预测变量的表资源描述.的观测数ValidationData {1}而且预测数据可能会有所不同。
ValidationData {2}必须匹配响应变量的数据类型和格式吗Y或ResponseVarName.如果ValidationData {2}是一个类标签的数组,那么它必须有相同数量的元素作为观察的数量ValidationData {1}.的所有不同标签的集合ValidationData {2}必须是所有不同标签的子集Y.如果ValidationData {1}那是桌子吗ValidationData {2}可以是表中响应变量的名称。如果你想用同样的ResponseVarName或公式,您可以指定ValidationData {2}作为[].
您可以指定ValidationData {3}作为一个米-维数向量的观测权重或表中变量的名称ValidationData {1}这包含了观察权重。该软件用验证数据规范化权重,使它们的和为1。
如果你指定ValidationData并且要在命令行上显示验证损失,请为其指定大于0的值详细的.
中指定的最后一个求解器,如果该软件收敛解算器,则优化终止。否则,软件将使用中指定的下一个求解器解算器.
默认情况下,软件不会通过监测验证数据丢失来检测收敛性。
BFGS, LBFGS和SpaRSA收敛控件
BetaTolerance- - - - - -线性系数和偏置项的相对公差
1的军医
(默认)|负的标量
对线性系数和偏置项(截距)的相对公差,指定为逗号分隔的对,由“BetaTolerance”一个非负标量。
让
,即优化迭代时的系数向量和偏置项t.如果
,则优化终止。
如果你还指定GradientTolerance,当软件满足任意一个停止条件时,优化终止。
中指定的最后一个求解器,如果该软件收敛解算器,则优化终止。否则,软件将使用中指定的下一个求解器解算器.
例子:e-6 BetaTolerance, 1
数据类型:单|双
GradientTolerance- - - - - -绝对梯度公差
1 e-6
(默认)|负的标量
绝对梯度公差,指定为由逗号分隔的对组成“GradientTolerance”一个非负标量。
让
为目标函数相对于优化迭代时的系数和偏差项的梯度向量t.如果
,则优化终止。
如果你还指定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}一定是米——- - - - - -p或p——- - - - - -米具有相同方向的预测器数据的完整或稀疏矩阵X.训练数据中的预测变量X而且ValidationData {1}必须对应。类似地,如果你使用预测表资源描述那么,预测者的数据ValidationData {1}必须是包含相同预测变量的表资源描述.的观测数ValidationData {1}而且预测数据可能会有所不同。
ValidationData {2}必须匹配响应变量的数据类型和格式吗Y或ResponseVarName.如果ValidationData {2}是一个类标签的数组,那么它必须有相同数量的元素作为观察的数量ValidationData {1}.的所有不同标签的集合ValidationData {2}必须是所有不同标签的子集Y.如果ValidationData {1}那是桌子吗ValidationData {2}可以是表中响应变量的名称。如果你想用同样的ResponseVarName或公式,您可以指定ValidationData {2}作为[].
您可以指定ValidationData {3}作为一个米-维数向量的观测权重或表中变量的名称ValidationData {1}这包含了观察权重。该软件用验证数据规范化权重,使它们的和为1。
如果你指定ValidationData并且要在命令行上显示验证损失,请为其指定大于0的值详细的.
中指定的最后一个求解器,如果该软件收敛解算器,则优化终止。否则,软件将使用中指定的下一个求解器解算器.
默认情况下,软件不会通过监测验证数据丢失来检测收敛性。
Hyperparameter优化
OptimizeHyperparameters- - - - - -需要优化的参数
“没有”
(默认)|“汽车”
|“所有”
|符合条件的参数名的字符串数组或单元格数组|向量的optimizableVariable对象
参数进行优化,指定为由逗号分隔的对组成“OptimizeHyperparameters”和以下其中之一:
“没有”-不要优化。
“汽车”——使用{“λ”、“学习者”}.
“所有”-优化所有符合条件的参数。
符合条件的参数名的字符串数组或单元格数组。
向量的optimizableVariable对象的输出hyperparameters.
优化尝试最小化交叉验证损失(错误)fitclinear通过改变参数。有关交叉验证丢失的信息(尽管是在不同的上下文中),请参见分类损失.若要控制交叉验证类型和优化的其他方面,请使用HyperparameterOptimizationOptions名称-值对。
请注意
的价值“OptimizeHyperparameters”重写使用其他名称-值参数指定的任何值。例如,设置“OptimizeHyperparameters”来“汽车”原因fitclinear方法所对应的超参数“汽车”选项并忽略超参数的任何指定值。
符合条件的参数fitclinear是:
通过传递的向量来设置非默认参数optimizableVariable具有非默认值的对象。例如,
负载fisheririsParams =超参数(“fitclinear”量,物种);参数(1)。Range = [1e-4,1e6];
通过参数个数作为价值OptimizeHyperparameters.
默认情况下,迭代显示出现在命令行上,并根据优化中的超参数数量显示图形。对于优化和绘图,目标函数为误分类率。要控制迭代显示,请设置详细的字段“HyperparameterOptimizationOptions”名称-值参数。为了控制情节,设置ShowPlots字段“HyperparameterOptimizationOptions”名称-值参数。
有关示例,请参见优化线性分类器.
例子:“OptimizeHyperparameters”、“汽车”
HyperparameterOptimizationOptions- - - - - -优化选项
结构
用于优化的选项,指定为结构。的效果OptimizeHyperparameters名称-值参数。结构中的所有字段都是可选的。
字段名
值
默认的
优化器
“bayesopt”-使用贝叶斯优化。在内部,此设置调用bayesopt.
“gridsearch”-使用网格搜索NumGridDivisions每个维度的值。
“randomsearch”-在其中随机搜索MaxObjectiveEvaluations点。
“gridsearch”以随机顺序进行搜索,使用统一抽样而不从网格中替换。优化后,可以使用命令获取网格顺序的表sortrows (Mdl.HyperparameterOptimizationResults).
“bayesopt”
AcquisitionFunctionName
“expected-improvement-per-second-plus”
“expected-improvement”
“expected-improvement-plus”
“expected-improvement-per-second”
“lower-confidence-bound”
“probability-of-improvement”
名称包括的获取函数每秒不能产生可重复的结果,因为优化依赖于目标函数的运行时间。名称包括的获取函数+当他们过度开发一个区域时,修改他们的行为。详情请参见采集函数类型.
“expected-improvement-per-second-plus”
MaxObjectiveEvaluations
目标函数求值的最大个数。
30.为“bayesopt”而且“randomsearch”,而整个电网为“gridsearch”
MaxTime
时间限制,指定为正实标量。时间限制以秒为单位,由抽搐而且toc.运行时间可以超过MaxTime因为MaxTime不中断函数求值。
正
NumGridDivisions
为“gridsearch”,表示每个维度中值的数量。该值可以是一个正整数向量,给出每个维度的值的数量,也可以是一个适用于所有维度的标量。对于分类变量,该字段将被忽略。
10
ShowPlots
指示是否显示图的逻辑值。如果真正的,该字段根据迭代次数绘制最佳观测目标函数值。如果使用贝叶斯优化(优化器是“bayesopt”),则该字段也绘制出目标函数的最佳估计值。最佳观测目标函数值和最佳估计目标函数值对应于BestSoFar(观察)而且BestSoFar (estim)。列的迭代分别显示。您可以在属性中找到这些值ObjectiveMinimumTrace而且EstimatedObjectiveMinimumTrace的Mdl。HyperparameterOptimizationResults.如果问题包含一个或两个用于贝叶斯优化的优化参数,则ShowPlots还绘制了目标函数对参数的模型。
真正的
SaveIntermediateResults
时是否保存结果的逻辑值优化器是“bayesopt”.如果真正的,此字段将覆盖名为“BayesoptResults”在每次迭代中。变量是aBayesianOptimization对象。
假
详细的
在命令行显示:
0-无迭代显示
1-迭代显示
2-带有额外信息的迭代显示
详细信息请参见bayesopt详细的
名称-值参数和示例使用贝叶斯优化优化分类器拟合.
1
UseParallel
指示是否并行运行贝叶斯优化的逻辑值,这需要并行计算工具箱™。由于并行计时的不可再现性,并行贝叶斯优化不一定产生可再现的结果。详细信息请参见并行贝叶斯优化.
假
重新分区
指示是否在每次迭代中重新划分交叉验证的逻辑值。如果这个字段是假,优化器使用单个分区进行优化。设置真正的通常会给出最健壮的结果,因为它考虑了分区噪声。然而,为了获得好的结果,真正的需要至少两倍的函数求值。
假
使用以下三个选项中的一个即可。
CVPartition
一个cvpartition对象创建的cvpartition
“Kfold”,5如果没有指定交叉验证字段
坚持
范围内的标量(0,1)表示抵抗分数
Kfold
大于1的整数
例子:“HyperparameterOptimizationOptions”、结构(MaxObjectiveEvaluations, 60)
数据类型:结构体
X- - - - - -预测数据
完整的矩阵|稀疏矩阵
完整的矩阵
预测器数据,指定为 的长度 请注意 如果你定位你的预测矩阵,使观察结果与列相对应,并指定 数据类型:单
Y- - - - - -类标签
分类数组|字符数组|字符串数组|逻辑向量|数值向量|字符向量的单元格数组
分类数组
分类模型训练到的类标签,指定为类别、字符或字符串数组、逻辑或数字向量或字符向量的单元格数组。 的长度 如果 类指定类顺序是一个很好的实践 数据类型:
fitclinear
“类名”
fitcecoc
X
资源描述
字符
资源描述- - - - - -样本数据
表格
表格
用于训练模型的示例数据,指定为表。每行 可选地, 响应变量必须是类别、字符或字符串数组、逻辑或数字向量或字符向量的单元格数组。 类在响应变量中指定类的顺序是一种良好的实践 权重的列必须是数字向量。 中必须指定响应变量 通过使用指定响应变量 使用定义模型规范 如果 数据类型:
fitclinear
一会
fitcecoc
ResponseVarName
公式
权重
PredictorNames
Y
表格
ResponseVarName- - - - - -响应变量名
变量名资源描述
变量名
响应变量名,指定为中的变量名 您必须指定 响应变量必须是类别、字符或字符串数组;向量:逻辑或数字向量;或者是字符向量的单元格数组。如果 类指定类的顺序是一个很好的实践 数据类型:资源描述
一会
字符
公式- - - - - -响应变量的解释模型和预测变量的子集
特征向量|字符串标量
特征向量
响应变量和预测变量子集的解释模型,在表单中指定为字符向量或字符串标量 中指定变量的子集 公式中的变量名必须同时为 数据类型:资源描述
isvarname
matlab.lang.makeValidName
字符
请注意
软件处理 响应变量中缺少值(例如, 在预测器观察中至少有一个缺失值(例如,行 为了节省内存使用,最好的做法是在训练之前手动从训练数据中删除包含缺失值的观察值。
{2}
南
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家,在那里名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来名字在报价。
例子:“ObservationsIn”、“列”、“学习者”,“物流”、“CrossVal”,“上”指定预测器矩阵的列对应于观察值,实现逻辑回归,实现10倍交叉验证。
请注意
方法时,不能使用任何交叉验证名称-值参数“OptimizeHyperparameters”名称-值参数。您可以修改交叉验证“OptimizeHyperparameters”只有使用“HyperparameterOptimizationOptions”名称-值参数。
线性分类选项
λ- - - - - -正则化项强度
“汽车”
(默认)|负的标量|非负值的向量
正则化术语的强度,指定为由逗号分隔的对组成“λ”而且“汽车”,一个非负的标量,或者一个非负的值的向量。
为“汽车”,λ= 1 /n.
如果指定了交叉验证、名值对参数(例如,CrossVal),然后n是折叠观察数。
否则,n是训练样本量。
对于一个非负值的向量,fitclinear中每个不同值依次优化目标函数λ按升序排列。
如果解算器是“sgd”或“asgd”而且正则化是“套索”,fitclinear不使用以前的系数估计作为温暖的开始用于下一个优化迭代。否则,fitclinear使用热启动。
如果正则化是“套索”时,则任意系数估计值为0时,均保持其值fitclinear中的后续值进行优化λ.
fitclinear返回每个指定正则化强度的系数估计值。
例子:“λ”,10 ^ (- (10:2:2))
数据类型:字符|字符串|双|单
学习者- - - - - -线性分类模型类型
“支持向量机”
(默认)|“物流”
线性分类模型类型,指定为由逗号分隔的对组成“学习者”而且“支持向量机”或“物流”.
在这个表格中,
β的向量p系数。
x是来自p预测变量。
b是标量偏置。
价值
算法
响应范围
损失函数
“支持向量机”
金宝app支持向量机
y∊{1};正类为1,其他为-1
铰链:
“物流”
逻辑回归
一样“支持向量机”
异常(物流):
例子:“学习者”,“物流”
ObservationsIn- - - - - -预测器数据观测维数
“行”
(默认)|“列”
预测器数据观测维数,指定为“行”或“列”.
请注意
如果你定位你的预测矩阵,使观察结果与列相对应,并指定“ObservationsIn”、“列”,那么您可能会经历计算时间的显著减少。你不能指定“ObservationsIn”、“列”用于表中的预测器数据。
例子:“ObservationsIn”、“列”
数据类型:字符|字符串
正则化- - - - - -复杂性惩罚类型
“套索”
|“岭”
复杂度惩罚类型,指定为由逗号分隔的对组成“正规化”而且“套索”或“岭”.
该软件从平均损失函数的和组成最小化的目标函数(见学习者)和该表中的正则化项。
价值
描述
“套索”
套索(L1)惩罚:
“岭”
脊(L2)惩罚:
要指定正则化项的强度,即λ在表达式中,使用λ.
该软件排除偏差项(β0)从正规化惩罚。
如果解算器是“sparsa”,则为默认值正则化是“套索”.否则,默认为“岭”.
提示
对于预测变量选择,请指定“套索”.有关变量选择的更多信息,请参见特征选择简介.
为了优化精度,请指定“岭”.
例子:“正规化”、“套索”
解算器- - - - - -目标函数最小化技术
“sgd”
|“asgd”
|“双重”
|“蓄热”|“lbfgs”|“sparsa”|字符串数组|字符向量的单元格数组
目标函数最小化技术,指定为逗号分隔对组成“规划求解”一个字符向量或字符串标量,一个字符串数组,或一个单元格数组的字符向量的值从这个表。
价值
描述
限制
“sgd”
随机梯度下降(SGD)[4][2]
“asgd”
平均随机梯度下降(ASGD)[7]
“双重”
支持向量机的双SGD[1][6]
正则化
必须“岭”而且学习者必须“支持向量机”.
“蓄热”
Broyden-Fletcher-Goldfarb-Shanno准牛顿算法(BFGS)[3]
效率低下,如果X是非常高维的。
“lbfgs”
有限内存BFGS (LBFGS)[3]
正则化必须“岭”.
“sparsa”
基于可分离近似的稀疏重建[5]
正则化必须“套索”.
如果你指定:
山脊惩罚(见正则化),X包含100个或更少的预测变量,则默认解算器为“蓄热”.
支持向量机模型(见学习者)、山脊惩罚,以及X包含超过100个预测变量,则默认解算器为“双重”.
套索罚X包含100个或更少的预测变量,则默认解算器为“sparsa”.
否则,默认解算器为“sgd”.请注意,在执行超参数优化时,默认求解器可以更改。有关更多信息,请参见正则化方法决定了超参数优化中使用的求解器.
如果指定求解器名称的字符串数组或单元格数组,则λ,软件采用求解器的解金宝搏官方网站j作为求解的一个温暖的开始j+ 1。
例子:{“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)
(默认)|数值向量|数字矩阵
初始线性系数估计值(β),指定为逗号分隔的对,由“β”和一个p-维数字向量或ap——- - - - - -l数字矩阵。p预测变量的数量在吗X而且l正则化强度值的数量(有关详细信息,请参阅λ).
如果您指定p-维向量,然后软件对目标函数进行优化l使用此过程的次数。
软件优化使用β的初始值和最小值λ作为正则化强度。
该软件再次优化使用结果估计从以前的优化作为一个温暖的开始中次小的值λ作为正则化强度。
软件执行第2步,直到耗尽所有的值λ.
如果您指定p——- - - - - -l矩阵,然后软件对目标函数进行优化l次了。在迭代j,软件使用β(:,j)作为初始值,在排序之后λ按升序使用λ(j)作为正则化强度。
如果你设置“规划求解”、“双”,那么软件就会忽略β.
数据类型:单|双
偏见- - - - - -初始截距估计
数字标量|数值向量
初步截距估计(b),指定为逗号分隔的对,由“偏见”和一个数值标量或l-维数值向量。l正则化强度值的数量(有关详细信息,请参阅λ).
如果您指定一个标量,那么软件将优化目标函数l使用此过程的次数。
软件优化使用偏见的初始值和最小值λ作为正则化强度。
使用结果估计作为下一个优化迭代的温暖开始,并在中使用下一个最小值λ作为正则化强度。
软件执行第2步,直到耗尽所有的值λ.
如果您指定l-维向量,然后软件对目标函数进行优化l次了。在迭代j,软件使用偏差(j)作为初始值,在排序之后λ按升序使用λ(j)作为正则化强度。
默认情况下:
如果学习者是“物流”,那么让gj如果是1Y (j)为正类,否则为-1。偏见是加权平均的吗g用于训练或交叉验证,内叠观察。
如果学习者是“支持向量机”,然后偏见是0。
数据类型:单|双
FitBias- - - - - -线性模型截距包含标志
真正的
(默认)|假
线性模型截距包含标志,指定为由逗号分隔的对组成“FitBias”而且真正的或假.
价值
描述
真正的
该软件包括偏差项b在线性模型中,然后估计它。
假
软件集b在估计期间= 0。
例子:“FitBias”,假的
数据类型:逻辑
PostFitBias- - - - - -标志拟合优化后的线性模型截距
假
(默认)|真正的
标志来拟合优化后的线性模型截距,指定为由逗号分隔的对组成“PostFitBias”而且真正的或假.
价值
描述
假
软件估计偏差项b这些系数β在优化。
真正的
估计b,软件:
估计β而且b使用模型
估计分类分数
不菲b通过在分类分数上设置阈值来获得最大的准确性
如果你指定真正的,然后FitBias一定是真的。
例子:“PostFitBias”,真的
数据类型:逻辑
详细的- - - - - -冗长的水平
0
(默认)|非负整数
详细级别,指定为逗号分隔的对,由“详细”和一个非负整数。详细的控制诊断信息的数量fitclinear在命令行中显示。
价值
描述
0
fitclinear不显示诊断信息。
1
fitclinear周期性地显示和存储目标函数、梯度幅度和其他诊断信息的值。FitInfo。历史包含诊断信息。
任意正整数
fitclinear在每次优化迭代中显示和存储诊断信息。FitInfo。历史包含诊断信息。
例子:“详细”,1
数据类型:双|单
SGD和ASGD求解器选项
BatchSize- - - - - -Mini-batch大小
正整数
小批量大小,指定为由逗号分隔的对组成“BatchSize”一个正整数。在每次迭代中,软件估计次梯度使用BatchSize训练数据的观察结果。
如果X是一个数字矩阵,那么默认值是10.
如果X是稀疏矩阵,那么默认值是马克斯([10日装天花板(sqrt (ff)))),在那里ff = numel(X)/nnz(X)(丰满的因素的X).
例子:“BatchSize”,100年
数据类型:单|双
LearnRate- - - - - -学习速率
积极的标量
学习率,指定为由逗号分隔的对组成“LearnRate”一个正标量。LearnRate通过缩放次梯度来控制优化步长。
如果正则化是“岭”,然后LearnRate初始学习率γ0.fitclinear确定迭代的学习率t,γt,使用
λ的值λ.
如果解算器是“sgd”,然后c= 1。
如果解算器是“asgd”,然后c是0.75[7].
如果正则化是“套索”,则对于所有迭代,LearnRate是恒定的。
默认情况下,LearnRate是1 /√(1 +马克斯(sum (x ^ 2, obsDim)))),在那里obsDim是1如果观测数据构成预测数据的列X,2否则。
例子:“LearnRate”,0.01
数据类型:单|双
OptimizeLearnRate- - - - - -标志降低学习率
真正的
(默认)|假
标志,以在软件检测到发散(即超过最小值)时降低学习率,指定为逗号分隔的对,由“OptimizeLearnRate”而且真正的或假.
如果OptimizeLearnRate是“真正的”,那么:
对于很少的优化迭代,软件开始优化使用LearnRate作为学习率。
如果目标函数值增加,则软件重新启动并使用当前学习率值的一半。
软件迭代第2步,直到目标函数减小。
例子:“OptimizeLearnRate”,真的
数据类型:逻辑
TruncationPeriod- - - - - -套索截断运行之间的小批数量
10
(默认)|正整数
套索截断运行之间的小批数,指定为逗号分隔的对,由“TruncationPeriod”一个正整数。
截断运行后,软件应用软阈值的线性系数。即加工后k=TruncationPeriod小批量,软件截断估计的系数j使用
SGD,
是系数的估计吗j处理后kmini-batches。
γt 迭代时的学习率是多少t.λ的值λ.
ASGD,
是平均估计系数吗j处理后kmini-batches,
如果正则化是“岭”,那么软件就会忽略TruncationPeriod.
例子:“TruncationPeriod”,100年
数据类型:单|双
其他分类选择
CategoricalPredictors- - - - - -分类预测器列表
正整数向量|逻辑向量|字符矩阵|字符串数组|字符向量的单元格数组|“所有”
类别预测符列表,指定为此表中的值之一。描述假设预测器数据在行中有观测值,在列中有预测器。
价值
描述
正整数向量
向量中的每个条目都是一个指标值,表明相应的预测器是分类的。索引值在1和之间p,在那里p用于训练模型的预测器的数量。如果fitclinear使用输入变量的子集作为预测器,然后函数仅使用该子集对预测器进行索引。的CategoricalPredictors值不计算响应变量、观察权重变量或函数不使用的任何其他变量。
逻辑向量
一个真正的Entry表示对应的预测器是分类的。向量的长度是p.
字符矩阵
矩阵的每一行都是一个预测变量的名称。名称必须与中的条目匹配PredictorNames.用额外的空格填充名字,这样字符矩阵的每一行都有相同的长度。
字符向量的字符串数组或单元格数组
数组中的每个元素都是一个预测变量的名称。名称必须与中的条目匹配PredictorNames.
“所有”
所有预测因素都是绝对的。
默认情况下,如果预测器数据在表(资源描述),fitclinear如果一个变量是逻辑向量、分类向量、字符数组、字符串数组或字符向量的单元格数组,则假定该变量是分类的。如果预测器数据为矩阵(X),fitclinear假设所有预测因子都是连续的。要将任何其他预测符标识为类别预测符,请使用“CategoricalPredictors”名称-值参数。
对于已识别的分类预测因子,fitclinear使用两种不同的方案创建虚拟变量,具体取决于分类变量是无序的还是有序的。对于一个无序分类变量,fitclinear为分类变量的每一层创建一个虚拟变量。对于有序分类变量,fitclinear创建的虚拟变量比类别数少一个。详细信息请参见自动创建虚拟变量.
例子:“CategoricalPredictors”、“所有”
数据类型:单|双|逻辑|字符|字符串|细胞
一会- - - - - -用于培训的类名
分类数组|字符数组|字符串数组|逻辑向量|数值向量|字符向量的单元格数组
用于训练的类名,指定为类别、字符或字符串数组;向量:逻辑或数字向量;或者是字符向量的单元格数组。一会必须具有与响应变量相同的数据类型资源描述或Y.
如果一会是字符数组,则每个元素必须对应数组中的一行。
使用一会:
在培训期间指定课程的顺序。
指定与类顺序对应的任何输入或输出参数维度的顺序。例如,使用一会指定…尺寸的顺序成本或返回的分类分数的列顺序预测.
选择用于培训的类的子集。例如,假设集合中所有不同的类名Y是(“a”、“b”、“c”).用课堂上的观察来训练模型“一个”而且“c”只是,指定“类名”,(“a”、“c”).
的默认值一会响应变量中所有不同类名的集合在吗资源描述或Y.
例子:“类名”,(“b”,“g”)
数据类型:分类|字符|字符串|逻辑|单|双|细胞
成本- - - - - -误分类代价
方阵|结构数组
错误分类代价,指定为逗号分隔的对,由“成本”一个方阵或结构。
如果你指定了方阵成本(“成本”,成本),然后成本(i, j)将一个点分类的成本是多少j如果它真正的阶级是我.也就是说,行对应于真实的类,列对应于预测的类。的相应行和列的类顺序成本,使用一会名称-值对参数。
如果你指定了结构年代(“成本”),那么它必须有两个字段:
S.ClassNames,其中包含类名作为与Y
S.ClassificationCosts,其中包含成本矩阵,其行和列的顺序为S.ClassNames
的默认值成本是(K) -眼睛(K),在那里K是不同类的数量。
fitclinear使用成本中指定的优先类概率之前.然后,fitclinear使用调整后的先验概率进行训练。
例子:“成本”,[0 2;1 0]
数据类型:单|双|结构体
PredictorNames- - - - - -预测变量名称
唯一名称的字符串数组|唯一字符向量的单元格数组
预测器变量名,指定为唯一名称的字符串数组或唯一字符向量的单元格数组。的功能“PredictorNames”这取决于你提供训练数据的方式。
如果你提供X而且Y,那么你就可以使用了“PredictorNames”中预测变量的名称X.
里面名字的顺序PredictorNames必须与预测器的顺序相对应吗X.假设X具有默认方向,在行中观察,在列中预测,PredictorNames {1}名字是X (: 1),PredictorNames {2}名字是X (:, 2)等等。同时,大小(X, 2)而且元素个数(PredictorNames)必须是相等的。
默认情况下,PredictorNames是{x1, x2,…}.
如果你提供资源描述,那么你就可以使用了“PredictorNames”选择在训练中使用哪些预测变量。也就是说,fitclinear中仅使用预测变量PredictorNames以及训练中的响应变量。
PredictorNames的子集Tbl.Properties.VariableNames并且不能包括响应变量的名称。
默认情况下,PredictorNames包含所有预测变量的名称。
一个好的实践是使用其中一种来指定训练的预测器“PredictorNames”或公式,但不是两者都有。
例子:PredictorNames,{‘SepalLength’,‘SepalWidth’,‘PetalLength’,‘PetalWidth}
数据类型:字符串|细胞
之前- - - - - -先验概率
“经验”
(默认)|“统一”
|数值向量|结构数组
每个类的先验概率,由逗号分隔的对组成“之前”而且“经验”,“统一”、数字向量或结构数组。
下表总结了设置先验概率的可用选项。
价值
描述
“经验”
类先验概率是类的相对频率Y.
“统一”
所有类先验概率都等于1/K,在那里K是类的数量。
数值向量
每个元素都是一个类先验概率。根据元素的顺序排列Y.方法指定顺序“类名”参数,然后对元素进行相应的排序。
结构数组
一个结构年代有两个字段:
S.ClassNames作为相同类型的变量包含类名Y.
S.ClassProbs包含相应先验概率的向量。
fitclinear的先验概率归一化之前和为1。
例子:“之前”,结构(“类名”,{{“setosa”、“癣”}},ClassProbs, 1:2)
数据类型:字符|字符串|双|单|结构体
ResponseName- - - - - -响应变量名
“Y”
(默认)|特征向量|字符串标量
响应变量名,指定为字符向量或字符串标量。
如果你提供Y,那么你就可以使用了ResponseName为响应变量指定名称。
如果你提供ResponseVarName或公式,那么你就不能用了ResponseName.
例子:“ResponseName”、“反应”
数据类型:字符|字符串
ScoreTransform- - - - - -分数转换
“没有”
(默认)|“doublelogit”
|“invlogit”
|“ismax”|“分对数”|函数处理|……
分数转换,指定为字符向量、字符串标量或函数句柄。
该表总结了可用的字符向量和字符串标量。
价值
描述
“doublelogit”
1 / (1 +e2x )
“invlogit”
日志(x/ (1 -x))
“ismax”
将得分最大的类的得分设置为1,并将所有其他类的得分设置为0
“分对数”
1 / (1 +e- - - - - -x )
“没有”或“身份”
x(转换)
“标志”
1x< 0为0x= 01x> 0
“对称”
2x- 1
“symmetricismax”
将得分最大的类的得分设置为1,并将所有其他类的得分设置为-1
“symmetriclogit”
2 / (1 +e- - - - - -x ) - 1
对于MATLAB函数或您定义的函数,使用其函数句柄进行分数转换。函数句柄必须接受一个矩阵(原始分数)并返回一个相同大小的矩阵(转换后的分数)。
例子:“ScoreTransform”、“分对数”
数据类型:字符|字符串|function_handle
权重- - - - - -观察权重
非负数值向量|变量名资源描述
中指定为非负数值向量或变量名的观测权重资源描述.软件对每个观察结果进行加权X或资源描述中对应的值权重.的长度权重必须等于中的观察数X或资源描述.
如果将输入数据指定为表资源描述,然后权重可以是变量名中的资源描述它包含一个数值向量。在这种情况下,您必须指定权重作为字符向量或字符串标量。例如,如果权重向量W存储为资源描述。W,然后指定为' W '.否则,软件处理的所有列资源描述,包括W,作为预测因子或训练模型时的响应变量。
默认情况下,权重是的(n, 1),在那里n观察的数量在吗X或资源描述.
软件规范化权重求和为各类别的先验概率值。
数据类型:单|双|字符|字符串
交叉验证选择
CrossVal- - - - - -交叉验证标志
“关闭”
(默认)|“上”
交叉验证标志,指定为逗号分隔的对,由“Crossval”而且“上”或“关闭”.
如果你指定“上”,然后软件实现10倍交叉验证。
若要重写此交叉验证设置,请使用以下名称-值对参数之一:CVPartition,坚持,或KFold.要创建交叉验证的模型,一次只能使用一个交叉验证的名称-值对参数。
例子:“Crossval”,“上”
坚持- - - - - -顽固性验证的数据比例
范围(0,1)中的标量值
用于拒绝验证的数据的百分比,指定为逗号分隔的对,由“坚持”和范围(0,1)中的标量值。如果你指定“坚持”,p
,然后软件:
随机储备p
* 100%的数据作为验证数据,并使用其余数据训练模型
中存储紧凑的训练过的模型训练有素的交叉验证模型的属性。
要创建交叉验证的模型,您只能使用以下四个选项之一:'CVPartition
','坚持',或'KFold
'.
例子:“坚持”,0.1
数据类型:双|单
KFold- - - - - -折叠数
10
(默认)|大于1的正整数值
交叉验证分类器中使用的折叠数,指定为逗号分隔的对,由“KFold”一个大于1的正整数。如果你指定,例如,“KFold”,k,然后软件:
将数据随机划分为k集
对于每个集合,保留该集合作为验证数据,并使用另一个集合训练模型k- 1集
存储k紧凑,训练模型的细胞k的-by-1单元格向量训练有素的交叉验证模型的属性。
要创建交叉验证的模型,您只能使用以下四个选项之一:'CVPartition
','坚持
',或'KFold'.
例子:“KFold”,8
数据类型:单|双
SGD和ASGD收敛控制
BatchLimit- - - - - -最大批次数
正整数
要处理的最大批数,指定为逗号分隔的对,由“BatchLimit”一个正整数。当软件处理时BatchLimit批量,它终止优化。
默认情况下:
软件通过这些数据PassLimit次了。
如果指定多个求解器,并使用(A)SGD来获得下一个求解器的初始近似值,则默认值为装天花板(1 e6 / BatchSize).BatchSize是值'BatchSize
'名称-值对参数。
如果你指定BatchLimit,然后fitclinear也使用导致处理最少观测值的参数BatchLimit或PassLimit.
例子:“BatchLimit”,100年
数据类型:单|双
BetaTolerance- - - - - -线性系数和偏置项的相对公差
1的军医
(默认)|负的标量
对线性系数和偏置项(截距)的相对公差,指定为逗号分隔的对,由“BetaTolerance”一个非负标量。
让
,即优化迭代时的系数向量和偏置项t.如果
,则优化终止。
中指定的最后一个求解器,如果该软件收敛解算器,则优化终止。否则,软件将使用中指定的下一个求解器解算器.
例子:e-6 BetaTolerance, 1
数据类型:单|双
NumCheckConvergence- - - - - -下一次收敛检查前要处理的批次数
正整数
在下一次收敛检查之前要处理的批数,指定为由逗号分隔的对组成“NumCheckConvergence”一个正整数。
要指定批处理大小,请参见BatchSize.
默认情况下,每次通过整个数据集,软件都会检查大约10次收敛性。
例子:“NumCheckConvergence”,100年
数据类型:单|双
PassLimit- - - - - -最大通过次数
1
(默认)|正整数
通过数据的最大次数,指定为逗号分隔的对,由“PassLimit”一个正整数。
fitclinear当它完成一次数据传递时处理所有观察。
当fitclinear传递数据PassLimit多次,它会终止优化。
如果你指定BatchLimit,然后fitclinear也使用导致处理最少观测值的参数BatchLimit或PassLimit.
例子:“PassLimit”,5
数据类型:单|双
ValidationData- - - - - -优化收敛检测的验证数据
单元阵列|表格
用于优化收敛检测的验证数据,指定为由逗号分隔的对组成“ValidationData”一个单元格数组或表格。
在优化过程中,软件定期估计损失ValidationData.如果验证数据丢失增加,则软件终止优化。详情请参见算法.若要使用交叉验证优化超参数,请参阅交叉验证选项,例如CrossVal.
你可以指定ValidationData如果你用桌子的话,就像桌子一样资源描述包含响应变量的预测器数据。在这种情况下,ValidationData必须包含相同的预测器和响应包含在资源描述.该软件不会对观察结果施加权重,即使资源描述包含一个权重向量。要指定权重,必须指定ValidationData作为单元格数组。
如果你指定ValidationData作为单元格数组,它必须具有以下格式:
ValidationData {1}必须具有与预测器数据相同的数据类型和方向。也就是说,如果你使用预测矩阵X,然后ValidationData {1}一定是米——- - - - - -p或p——- - - - - -米具有相同方向的预测器数据的完整或稀疏矩阵X.训练数据中的预测变量X而且ValidationData {1}必须对应。类似地,如果你使用预测表资源描述那么,预测者的数据ValidationData {1}必须是包含相同预测变量的表资源描述.的观测数ValidationData {1}而且预测数据可能会有所不同。
ValidationData {2}必须匹配响应变量的数据类型和格式吗Y或ResponseVarName.如果ValidationData {2}是一个类标签的数组,那么它必须有相同数量的元素作为观察的数量ValidationData {1}.的所有不同标签的集合ValidationData {2}必须是所有不同标签的子集Y.如果ValidationData {1}那是桌子吗ValidationData {2}可以是表中响应变量的名称。如果你想用同样的ResponseVarName或公式,您可以指定ValidationData {2}作为[].
您可以指定ValidationData {3}作为一个米-维数向量的观测权重或表中变量的名称ValidationData {1}这包含了观察权重。该软件用验证数据规范化权重,使它们的和为1。
如果你指定ValidationData并且要在命令行上显示验证损失,请为其指定大于0的值详细的.
中指定的最后一个求解器,如果该软件收敛解算器,则优化终止。否则,软件将使用中指定的下一个求解器解算器.
默认情况下,软件不会通过监测验证数据丢失来检测收敛性。
双SGD收敛控制
BetaTolerance- - - - - -线性系数和偏置项的相对公差
1的军医
(默认)|负的标量
对线性系数和偏置项(截距)的相对公差,指定为逗号分隔的对,由“BetaTolerance”一个非负标量。
让
,即优化迭代时的系数向量和偏置项t.如果
,则优化终止。
如果你还指定DeltaGradientTolerance,当软件满足任意一个停止条件时,优化终止。
中指定的最后一个求解器,如果该软件收敛解算器,则优化终止。否则,软件将使用中指定的下一个求解器解算器.
例子:e-6 BetaTolerance, 1
数据类型:单|双
DeltaGradientTolerance- - - - - -Gradient-difference宽容
1
(默认)|负的标量
上下池之间的梯度差公差Karush-Kuhn-Tucker (KKT)互补条件违规者,指定为逗号分隔的对,由“DeltaGradientTolerance”一个非负标量。
如果KKT违反者的量级小于DeltaGradientTolerance,则软件终止优化。
中指定的最后一个求解器,如果该软件收敛解算器,则优化终止。否则,软件将使用中指定的下一个求解器解算器.
例子:依照“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}一定是米——- - - - - -p或p——- - - - - -米具有相同方向的预测器数据的完整或稀疏矩阵X.训练数据中的预测变量X而且ValidationData {1}必须对应。类似地,如果你使用预测表资源描述那么,预测者的数据ValidationData {1}必须是包含相同预测变量的表资源描述.的观测数ValidationData {1}而且预测数据可能会有所不同。
ValidationData {2}必须匹配响应变量的数据类型和格式吗Y或ResponseVarName.如果ValidationData {2}是一个类标签的数组,那么它必须有相同数量的元素作为观察的数量ValidationData {1}.的所有不同标签的集合ValidationData {2}必须是所有不同标签的子集Y.如果ValidationData {1}那是桌子吗ValidationData {2}可以是表中响应变量的名称。如果你想用同样的ResponseVarName或公式,您可以指定ValidationData {2}作为[].
您可以指定ValidationData {3}作为一个米-维数向量的观测权重或表中变量的名称ValidationData {1}这包含了观察权重。该软件用验证数据规范化权重,使它们的和为1。
如果你指定ValidationData并且要在命令行上显示验证损失,请为其指定大于0的值详细的.
中指定的最后一个求解器,如果该软件收敛解算器,则优化终止。否则,软件将使用中指定的下一个求解器解算器.
默认情况下,软件不会通过监测验证数据丢失来检测收敛性。
BFGS, LBFGS和SpaRSA收敛控件
BetaTolerance- - - - - -线性系数和偏置项的相对公差
1的军医
(默认)|负的标量
对线性系数和偏置项(截距)的相对公差,指定为逗号分隔的对,由“BetaTolerance”一个非负标量。
让
,即优化迭代时的系数向量和偏置项t.如果
,则优化终止。
如果你还指定GradientTolerance,当软件满足任意一个停止条件时,优化终止。
中指定的最后一个求解器,如果该软件收敛解算器,则优化终止。否则,软件将使用中指定的下一个求解器解算器.
例子:e-6 BetaTolerance, 1
数据类型:单|双
GradientTolerance- - - - - -绝对梯度公差
1 e-6
(默认)|负的标量
绝对梯度公差,指定为由逗号分隔的对组成“GradientTolerance”一个非负标量。
让
为目标函数相对于优化迭代时的系数和偏差项的梯度向量t.如果
,则优化终止。
如果你还指定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}一定是米——- - - - - -p或p——- - - - - -米具有相同方向的预测器数据的完整或稀疏矩阵X.训练数据中的预测变量X而且ValidationData {1}必须对应。类似地,如果你使用预测表资源描述那么,预测者的数据ValidationData {1}必须是包含相同预测变量的表资源描述.的观测数ValidationData {1}而且预测数据可能会有所不同。
ValidationData {2}必须匹配响应变量的数据类型和格式吗Y或ResponseVarName.如果ValidationData {2}是一个类标签的数组,那么它必须有相同数量的元素作为观察的数量ValidationData {1}.的所有不同标签的集合ValidationData {2}必须是所有不同标签的子集Y.如果ValidationData {1}那是桌子吗ValidationData {2}可以是表中响应变量的名称。如果你想用同样的ResponseVarName或公式,您可以指定ValidationData {2}作为[].
您可以指定ValidationData {3}作为一个米-维数向量的观测权重或表中变量的名称ValidationData {1}这包含了观察权重。该软件用验证数据规范化权重,使它们的和为1。
如果你指定ValidationData并且要在命令行上显示验证损失,请为其指定大于0的值详细的.
中指定的最后一个求解器,如果该软件收敛解算器,则优化终止。否则,软件将使用中指定的下一个求解器解算器.
默认情况下,软件不会通过监测验证数据丢失来检测收敛性。
Hyperparameter优化
OptimizeHyperparameters- - - - - -需要优化的参数
“没有”
(默认)|“汽车”
|“所有”
|符合条件的参数名的字符串数组或单元格数组|向量的optimizableVariable对象
参数进行优化,指定为由逗号分隔的对组成“OptimizeHyperparameters”和以下其中之一:
“没有”-不要优化。
“汽车”——使用{“λ”、“学习者”}.
“所有”-优化所有符合条件的参数。
符合条件的参数名的字符串数组或单元格数组。
向量的optimizableVariable对象的输出hyperparameters.
优化尝试最小化交叉验证损失(错误)fitclinear通过改变参数。有关交叉验证丢失的信息(尽管是在不同的上下文中),请参见分类损失.若要控制交叉验证类型和优化的其他方面,请使用HyperparameterOptimizationOptions名称-值对。
请注意
的价值“OptimizeHyperparameters”重写使用其他名称-值参数指定的任何值。例如,设置“OptimizeHyperparameters”来“汽车”原因fitclinear方法所对应的超参数“汽车”选项并忽略超参数的任何指定值。
符合条件的参数fitclinear是:
通过传递的向量来设置非默认参数optimizableVariable具有非默认值的对象。例如,
负载fisheririsParams =超参数(“fitclinear”量,物种);参数(1)。Range = [1e-4,1e6];
通过参数个数作为价值OptimizeHyperparameters.
默认情况下,迭代显示出现在命令行上,并根据优化中的超参数数量显示图形。对于优化和绘图,目标函数为误分类率。要控制迭代显示,请设置详细的字段“HyperparameterOptimizationOptions”名称-值参数。为了控制情节,设置ShowPlots字段“HyperparameterOptimizationOptions”名称-值参数。
有关示例,请参见优化线性分类器.
例子:“OptimizeHyperparameters”、“汽车”
HyperparameterOptimizationOptions- - - - - -优化选项
结构
用于优化的选项,指定为结构。的效果OptimizeHyperparameters名称-值参数。结构中的所有字段都是可选的。
字段名
值
默认的
优化器
“bayesopt”-使用贝叶斯优化。在内部,此设置调用bayesopt.
“gridsearch”-使用网格搜索NumGridDivisions每个维度的值。
“randomsearch”-在其中随机搜索MaxObjectiveEvaluations点。
“gridsearch”以随机顺序进行搜索,使用统一抽样而不从网格中替换。优化后,可以使用命令获取网格顺序的表sortrows (Mdl.HyperparameterOptimizationResults).
“bayesopt”
AcquisitionFunctionName
“expected-improvement-per-second-plus”
“expected-improvement”
“expected-improvement-plus”
“expected-improvement-per-second”
“lower-confidence-bound”
“probability-of-improvement”
名称包括的获取函数每秒不能产生可重复的结果,因为优化依赖于目标函数的运行时间。名称包括的获取函数+当他们过度开发一个区域时,修改他们的行为。详情请参见采集函数类型.
“expected-improvement-per-second-plus”
MaxObjectiveEvaluations
目标函数求值的最大个数。
30.为“bayesopt”而且“randomsearch”,而整个电网为“gridsearch”
MaxTime
时间限制,指定为正实标量。时间限制以秒为单位,由抽搐而且toc.运行时间可以超过MaxTime因为MaxTime不中断函数求值。
正
NumGridDivisions
为“gridsearch”,表示每个维度中值的数量。该值可以是一个正整数向量,给出每个维度的值的数量,也可以是一个适用于所有维度的标量。对于分类变量,该字段将被忽略。
10
ShowPlots
指示是否显示图的逻辑值。如果真正的,该字段根据迭代次数绘制最佳观测目标函数值。如果使用贝叶斯优化(优化器是“bayesopt”),则该字段也绘制出目标函数的最佳估计值。最佳观测目标函数值和最佳估计目标函数值对应于BestSoFar(观察)而且BestSoFar (estim)。列的迭代分别显示。您可以在属性中找到这些值ObjectiveMinimumTrace而且EstimatedObjectiveMinimumTrace的Mdl。HyperparameterOptimizationResults.如果问题包含一个或两个用于贝叶斯优化的优化参数,则ShowPlots还绘制了目标函数对参数的模型。
真正的
SaveIntermediateResults
时是否保存结果的逻辑值优化器是“bayesopt”.如果真正的,此字段将覆盖名为“BayesoptResults”在每次迭代中。变量是aBayesianOptimization对象。
假
详细的
在命令行显示:
0-无迭代显示
1-迭代显示
2-带有额外信息的迭代显示
详细信息请参见bayesopt详细的
名称-值参数和示例使用贝叶斯优化优化分类器拟合.
1
UseParallel
指示是否并行运行贝叶斯优化的逻辑值,这需要并行计算工具箱™。由于并行计时的不可再现性,并行贝叶斯优化不一定产生可再现的结果。详细信息请参见并行贝叶斯优化.
假
重新分区
指示是否在每次迭代中重新划分交叉验证的逻辑值。如果这个字段是假,优化器使用单个分区进行优化。设置真正的通常会给出最健壮的结果,因为它考虑了分区噪声。然而,为了获得好的结果,真正的需要至少两倍的函数求值。
假
使用以下三个选项中的一个即可。
CVPartition
一个cvpartition对象创建的cvpartition
“Kfold”,5如果没有指定交叉验证字段
坚持
范围内的标量(0,1)表示抵抗分数
Kfold
大于1的整数
例子:“HyperparameterOptimizationOptions”、结构(MaxObjectiveEvaluations, 60)
数据类型:结构体
指定可选参数对为 在R2021a之前,使用逗号分隔每个名称和值,并将其括起来 例子:名字
“ObservationsIn”、“列”、“学习者”,“物流”、“CrossVal”,“上”
请注意
方法时,不能使用任何交叉验证名称-值参数
λ- - - - - -正则化项强度
“汽车”
(默认)|负的标量|非负值的向量
“汽车”
(默认)|正则化术语的强度,指定为由逗号分隔的对组成 为 如果指定了交叉验证、名值对参数(例如, 否则, 对于一个非负值的向量, 如果 如果 例子: 数据类型:
CrossVal
解算器
正则化
fitclinear
“λ”,10 ^ (- (10:2:2))
字符
学习者- - - - - -线性分类模型类型
“支持向量机”
(默认)|“物流”
“支持向量机”
(默认)|“物流”
线性分类模型类型,指定为由逗号分隔的对组成 在这个表格中, β x b 例子:
价值 算法 响应范围 损失函数
“支持向量机”
金宝app支持向量机 y 铰链:
“物流”
逻辑回归 一样
异常(物流):
“学习者”,“物流”
ObservationsIn- - - - - -预测器数据观测维数
“行”
(默认)|“列”
“行”
(默认)|“列”
预测器数据观测维数,指定为 请注意 如果你定位你的预测矩阵,使观察结果与列相对应,并指定 例子: 数据类型:“ObservationsIn”、“列”
字符
正则化- - - - - -复杂性惩罚类型
“套索”
|“岭”
“套索”
|“岭”
复杂度惩罚类型,指定为由逗号分隔的对组成 该软件从平均损失函数的和组成最小化的目标函数(见 要指定正则化项的强度,即 该软件排除偏差项( 如果 提示 对于预测变量选择,请指定 为了优化精度,请指定 例子:学习者
价值 描述
“套索”
套索(L1)惩罚:
“岭”
脊(L2)惩罚:
λ
解算器
“正规化”、“套索”
解算器- - - - - -目标函数最小化技术
“sgd”
|“asgd”
|“双重”
|“蓄热”|“lbfgs”|“sparsa”|字符串数组|字符向量的单元格数组
“sgd”
|“asgd”
“双重”
“蓄热”|“lbfgs”|“sparsa”|字符串数组|字符向量的单元格数组
目标函数最小化技术,指定为逗号分隔对组成 如果你指定: 山脊惩罚(见 支持向量机模型(见 套索罚 否则,默认解算器为 如果指定求解器名称的字符串数组或单元格数组,则 例子: 提示 SGD和ASGD能比其他求解器更快地求解目标函数,而LBFGS和SpaRSA能比其他求解器得到更精确的解。金宝搏官方网站求解器组合,比如 在SGD和ASGD之间进行选择时,请考虑: SGD每次迭代花费更少的时间,但需要更多的迭代来收敛。 ASGD需要更少的迭代来收敛,但是每次迭代需要更多的时间。 如果预测数据是高维的 虽然您可以设置其他组合,但它们通常会导致精度较差的解决方案。金宝搏官方网站 如果预测数据是中等到低维的 如果 例子:
价值 描述 限制
“sgd”
随机梯度下降(SGD)
“asgd”
平均随机梯度下降(ASGD)
“双重”
支持向量机的双SGD
正则化
必须学习者
“蓄热”
Broyden-Fletcher-Goldfarb-Shanno准牛顿算法(BFGS)
效率低下,如果 X
“lbfgs”
有限内存BFGS (LBFGS)
正则化
“sparsa”
基于可分离近似的稀疏重建
正则化
λ
{“sgd”“lbfgs”}
“sgd”
“asgd”
“双重”
“lbfgs”
{“sgd”、“lbfgs”}
{“asgd”、“lbfgs”}
{“双”、“lbfgs”}
“sgd”
“asgd”
“sparsa”
{“sgd”、“sparsa”}
{“asgd”、“sparsa”}
“规划求解”,{‘sgd’,‘lbfgs}
β- - - - - -初始线性系数估计
0 (p, 1)
(默认)|数值向量|数字矩阵
0 (p, 1)
(默认)|初始线性系数估计值( 如果您指定 软件优化使用 该软件再次优化使用结果估计从以前的优化作为一个 软件执行第2步,直到耗尽所有的值 如果您指定 如果你设置 数据类型:X
λ
j
j
j
单
偏见- - - - - -初始截距估计
数字标量|数值向量
数字标量
初步截距估计( 如果您指定一个标量,那么软件将优化目标函数 软件优化使用 使用结果估计作为下一个优化迭代的温暖开始,并在中使用下一个最小值 软件执行第2步,直到耗尽所有的值 如果您指定 默认情况下: 如果 如果 数据类型:λ
j
j
j
学习者
j
单
FitBias- - - - - -线性模型截距包含标志
真正的
(默认)|假
真正的
(默认)|假
线性模型截距包含标志,指定为由逗号分隔的对组成 例子: 数据类型:
价值 描述
真正的
该软件包括偏差项
假
软件集 “FitBias”,假的
逻辑
PostFitBias- - - - - -标志拟合优化后的线性模型截距
假
(默认)|真正的
假
(默认)|真正的
标志来拟合优化后的线性模型截距,指定为由逗号分隔的对组成 估计 估计 估计分类分数 不菲 如果你指定 例子: 数据类型:
价值 描述
假
软件估计偏差项
真正的
FitBias
“PostFitBias”,真的
逻辑
详细的- - - - - -冗长的水平
0
(默认)|非负整数
0
(默认)|详细级别,指定为逗号分隔的对,由 例子: 数据类型:
价值 描述
0
fitclinear
1
fitclinear
任意正整数 fitclinear
“详细”,1
双
BatchSize- - - - - -Mini-batch大小
正整数
正整数
小批量大小,指定为由逗号分隔的对组成 如果 如果 例子: 数据类型:
X
“BatchSize”,100年
单
LearnRate- - - - - -学习速率
积极的标量
积极的标量
学习率,指定为由逗号分隔的对组成 如果
λ 如果 如果 如果 默认情况下, 例子: 数据类型:
正则化
λ
解算器
“LearnRate”,0.01
单
OptimizeLearnRate- - - - - -标志降低学习率
真正的
(默认)|假
真正的
(默认)|假
标志,以在软件检测到发散(即超过最小值)时降低学习率,指定为逗号分隔的对,由 如果 对于很少的优化迭代,软件开始优化使用 如果目标函数值增加,则软件重新启动并使用当前学习率值的一半。 软件迭代第2步,直到目标函数减小。 例子: 数据类型:
LearnRate
“OptimizeLearnRate”,真的
逻辑
TruncationPeriod- - - - - -套索截断运行之间的小批数量
10
(默认)|正整数
10
(默认)|套索截断运行之间的小批数,指定为逗号分隔的对,由 截断运行后,软件应用软阈值的线性系数。即加工后
SGD, ASGD, 如果 例子: 数据类型:
λ
正则化
“TruncationPeriod”,100年
单
CategoricalPredictors- - - - - -分类预测器列表
正整数向量|逻辑向量|字符矩阵|字符串数组|字符向量的单元格数组|“所有”
正整数向量
“所有”
类别预测符列表,指定为此表中的值之一。描述假设预测器数据在行中有观测值,在列中有预测器。 向量中的每个条目都是一个指标值,表明相应的预测器是分类的。索引值在1和之间 如果 一个 默认情况下,如果预测器数据在表( 对于已识别的分类预测因子, 例子: 数据类型:
价值 描述
正整数向量
逻辑向量
字符矩阵 矩阵的每一行都是一个预测变量的名称。名称必须与中的条目匹配 PredictorNames
字符向量的字符串数组或单元格数组 数组中的每个元素都是一个预测变量的名称。名称必须与中的条目匹配
“所有”
所有预测因素都是绝对的。 资源描述
X
“CategoricalPredictors”、“所有”
单
一会- - - - - -用于培训的类名
分类数组|字符数组|字符串数组|逻辑向量|数值向量|字符向量的单元格数组
分类数组
用于训练的类名,指定为类别、字符或字符串数组;向量:逻辑或数字向量;或者是字符向量的单元格数组。 如果 使用 在培训期间指定课程的顺序。 指定与类顺序对应的任何输入或输出参数维度的顺序。例如,使用 选择用于培训的类的子集。例如,假设集合中所有不同的类名 的默认值 例子: 数据类型:资源描述
Y
成本
“类名”,(“b”,“g”)
分类
成本- - - - - -误分类代价
方阵|结构数组
方阵
错误分类代价,指定为逗号分隔的对,由 如果你指定了方阵 如果你指定了结构 的默认值 例子: 数据类型:
一会
S.ClassNames
Y
S.ClassificationCosts
K
K
K
fitclinear
之前
“成本”,[0 2;1 0]
单
PredictorNames- - - - - -预测变量名称
唯一名称的字符串数组|唯一字符向量的单元格数组
唯一名称的字符串数组
预测器变量名,指定为唯一名称的字符串数组或唯一字符向量的单元格数组。的功能 如果你提供 里面名字的顺序 默认情况下, 如果你提供 默认情况下, 一个好的实践是使用其中一种来指定训练的预测器 例子: 数据类型:
X
Y
资源描述
PredictorNames
公式
PredictorNames,{‘SepalLength’,‘SepalWidth’,‘PetalLength’,‘PetalWidth}
字符串
之前- - - - - -先验概率
“经验”
(默认)|“统一”
|数值向量|结构数组
“经验”
(默认)|“统一”
每个类的先验概率,由逗号分隔的对组成 下表总结了设置先验概率的可用选项。 一个结构 例子: 数据类型:
价值 描述
“经验”
类先验概率是类的相对频率 Y
“统一”
所有类先验概率都等于1/ K
K
数值向量 每个元素都是一个类先验概率。根据元素的顺序排列 “类名”
结构数组
S.ClassNames
S.ClassProbs
fitclinear
“之前”,结构(“类名”,{{“setosa”、“癣”}},ClassProbs, 1:2)
字符
ResponseName- - - - - -响应变量名
“Y”
(默认)|特征向量|字符串标量
“Y”
(默认)|响应变量名,指定为字符向量或字符串标量。 如果你提供 如果你提供 例子: 数据类型:
Y
ResponseVarName
公式
“ResponseName”、“反应”
字符
ScoreTransform- - - - - -分数转换
“没有”
(默认)|“doublelogit”
|“invlogit”
|“ismax”|“分对数”|函数处理|……
“没有”
(默认)|“doublelogit”
“invlogit”
“ismax”|“分对数”|函数处理|……
分数转换,指定为字符向量、字符串标量或函数句柄。 该表总结了可用的字符向量和字符串标量。 对于MATLAB函数或您定义的函数,使用其函数句柄进行分数转换。函数句柄必须接受一个矩阵(原始分数)并返回一个相同大小的矩阵(转换后的分数)。 例子: 数据类型:
价值 描述
“doublelogit”
1 / (1 +
“invlogit”
日志(
“ismax”
将得分最大的类的得分设置为1,并将所有其他类的得分设置为0
“分对数”
1 / (1 +
“没有”
x
“标志”
1
“对称”
2
“symmetricismax”
将得分最大的类的得分设置为1,并将所有其他类的得分设置为-1
“symmetriclogit”
2 / (1 + “ScoreTransform”、“分对数”
字符
权重- - - - - -观察权重
非负数值向量|变量名资源描述
非负数值向量
中指定为非负数值向量或变量名的观测权重 如果将输入数据指定为表 默认情况下, 软件规范化 数据类型:资源描述
X
单
CrossVal- - - - - -交叉验证标志
“关闭”
(默认)|“上”
“关闭”
(默认)|“上”
交叉验证标志,指定为逗号分隔的对,由 如果你指定 若要重写此交叉验证设置,请使用以下名称-值对参数之一: 例子:CVPartition
坚持
KFold
“Crossval”,“上”
坚持- - - - - -顽固性验证的数据比例
范围(0,1)中的标量值
范围(0,1)中的标量值
用于拒绝验证的数据的百分比,指定为逗号分隔的对,由 随机储备 中存储紧凑的训练过的模型 要创建交叉验证的模型,您只能使用以下四个选项之一: 例子: 数据类型:p
,然后软件:
p
* 100CVPartition
'
坚持
'
KFold
'
“坚持”,0.1
双
KFold- - - - - -折叠数
10
(默认)|大于1的正整数值
10
(默认)|交叉验证分类器中使用的折叠数,指定为逗号分隔的对,由 将数据随机划分为 对于每个集合,保留该集合作为验证数据,并使用另一个集合训练模型 存储 要创建交叉验证的模型,您只能使用以下四个选项之一: 例子: 数据类型:
k
k
CVPartition
'
坚持
'
KFold
'
“KFold”,8
单
BatchLimit- - - - - -最大批次数
正整数
正整数
要处理的最大批数,指定为逗号分隔的对,由 默认情况下: 软件通过这些数据 如果指定多个求解器,并使用(A)SGD来获得下一个求解器的初始近似值,则默认值为 如果你指定 例子: 数据类型:
PassLimit
BatchSize
'
“BatchLimit”,100年
单
BetaTolerance- - - - - -线性系数和偏置项的相对公差
1的军医
(默认)|负的标量
1的军医
(默认)|对线性系数和偏置项(截距)的相对公差,指定为逗号分隔的对,由 让 中指定的最后一个求解器,如果该软件收敛 例子: 数据类型:解算器
e-6 BetaTolerance, 1
单
NumCheckConvergence- - - - - -下一次收敛检查前要处理的批次数
正整数
正整数
在下一次收敛检查之前要处理的批数,指定为由逗号分隔的对组成 要指定批处理大小,请参见 默认情况下,每次通过整个数据集,软件都会检查大约10次收敛性。 例子: 数据类型:BatchSize
“NumCheckConvergence”,100年
单
PassLimit- - - - - -最大通过次数
1
(默认)|正整数
1
(默认)|通过数据的最大次数,指定为逗号分隔的对,由 当 如果你指定 例子: 数据类型:fitclinear
BatchLimit
“PassLimit”,5
单
ValidationData- - - - - -优化收敛检测的验证数据
单元阵列|表格
单元阵列
用于优化收敛检测的验证数据,指定为由逗号分隔的对组成 在优化过程中,软件定期估计损失 你可以指定 如果你指定 您可以指定 如果你指定 中指定的最后一个求解器,如果该软件收敛 默认情况下,软件不会通过监测验证数据丢失来检测收敛性。CrossVal
资源描述
ValidationData {1}
X
ValidationData {2}
Y
ResponseVarName
公式
详细的
解算器
BetaTolerance- - - - - -线性系数和偏置项的相对公差
1的军医
(默认)|负的标量
1的军医
(默认)|对线性系数和偏置项(截距)的相对公差,指定为逗号分隔的对,由 让 如果你还指定 中指定的最后一个求解器,如果该软件收敛 例子: 数据类型:DeltaGradientTolerance
解算器
e-6 BetaTolerance, 1
单
DeltaGradientTolerance- - - - - -Gradient-difference宽容
1
(默认)|负的标量
1
(默认)|上下池之间的梯度差公差 如果KKT违反者的量级小于 中指定的最后一个求解器,如果该软件收敛 例子: 数据类型:
解算器
依照“DeltaGapTolerance”,1
双
NumCheckConvergence- - - - - -在下一次收敛检查之前,通过整个数据集处理的次数
5
(默认)|正整数
5
(默认)|在下一次收敛检查之前,通过整个数据集要处理的次数,指定为由逗号分隔的对组成的 例子: 数据类型:“NumCheckConvergence”,100年
单
PassLimit- - - - - -最大通过次数
10
(默认)|正整数
10
(默认)|通过数据的最大次数,指定为逗号分隔的对,由 当软件完成对数据的一次处理时,它已经处理了所有的观察结果。 当软件通过数据时 例子: 数据类型:“PassLimit”,5
单
ValidationData- - - - - -优化收敛检测的验证数据
单元阵列|表格
单元阵列
用于优化收敛检测的验证数据,指定为由逗号分隔的对组成 在优化过程中,软件定期估计损失 你可以指定 如果你指定 您可以指定 如果你指定 中指定的最后一个求解器,如果该软件收敛 默认情况下,软件不会通过监测验证数据丢失来检测收敛性。CrossVal
资源描述
ValidationData {1}
X
ValidationData {2}
Y
ResponseVarName
公式
详细的
解算器
BetaTolerance- - - - - -线性系数和偏置项的相对公差
1的军医
(默认)|负的标量
1的军医
(默认)|对线性系数和偏置项(截距)的相对公差,指定为逗号分隔的对,由 让 如果你还指定 中指定的最后一个求解器,如果该软件收敛 例子: 数据类型:GradientTolerance
解算器
e-6 BetaTolerance, 1
单
GradientTolerance- - - - - -绝对梯度公差
1 e-6
(默认)|负的标量
1 e-6
(默认)|绝对梯度公差,指定为由逗号分隔的对组成 让 如果你还指定 如果软件收敛于软件中指定的最后一个求解器,则优化终止。否则,软件将使用中指定的下一个求解器 例子: 数据类型:BetaTolerance
解算器
e-5 GradientTolerance, 1
单
HessianHistorySize- - - - - -黑森近似的历史缓冲区大小
15
(默认)|正整数
15
(默认)|黑森近似的历史缓冲区大小,指定为逗号分隔的对,由 软件不支持金宝app 例子: 数据类型:“HessianHistorySize”,10
单
IterationLimit- - - - - -优化迭代的最大次数
1000
(默认)|正整数
1000
(默认)|优化迭代的最大次数,指定为由逗号分隔的对组成 例子: 数据类型:解算器
“IterationLimit”,500年
单
ValidationData- - - - - -优化收敛检测的验证数据
单元阵列|表格
单元阵列
用于优化收敛检测的验证数据,指定为由逗号分隔的对组成 在优化过程中,软件定期估计损失 你可以指定 如果你指定 您可以指定 如果你指定 中指定的最后一个求解器,如果该软件收敛 默认情况下,软件不会通过监测验证数据丢失来检测收敛性。CrossVal
资源描述
ValidationData {1}
X
ValidationData {2}
Y
ResponseVarName
公式
详细的
解算器
OptimizeHyperparameters- - - - - -需要优化的参数
“没有”
(默认)|“汽车”
|“所有”
|符合条件的参数名的字符串数组或单元格数组|向量的optimizableVariable对象
“没有”
(默认)|“汽车”
“所有”
参数进行优化,指定为由逗号分隔的对组成 符合条件的参数名的字符串数组或单元格数组。 向量的 优化尝试最小化交叉验证损失(错误) 请注意 的价值 符合条件的参数 通过传递的向量来设置非默认参数 通过 默认情况下,迭代显示出现在命令行上,并根据优化中的超参数数量显示图形。对于优化和绘图,目标函数为误分类率。要控制迭代显示,请设置 有关示例,请参见 例子:
“没有”
“汽车”
“所有”
hyperparameters
HyperparameterOptimizationOptions
负载
“OptimizeHyperparameters”、“汽车”
HyperparameterOptimizationOptions- - - - - -优化选项
结构
结构
用于优化的选项,指定为结构。的效果 名称包括的获取函数 时间限制,指定为正实标量。时间限制以秒为单位,由 在命令行显示: 详细信息请参见 指示是否在每次迭代中重新划分交叉验证的逻辑值。如果这个字段是 设置 例子: 数据类型:OptimizeHyperparameters
字段名 值 默认的
优化器
“bayesopt”
bayesopt
“gridsearch”
“randomsearch”
“gridsearch”
“bayesopt”
AcquisitionFunctionName
“expected-improvement-per-second-plus”
“expected-improvement”
“expected-improvement-plus”
“expected-improvement-per-second”
“lower-confidence-bound”
“probability-of-improvement”
“expected-improvement-per-second-plus”
MaxObjectiveEvaluations
目标函数求值的最大个数。 30.
MaxTime
抽搐
toc
正
NumGridDivisions
为 10
ShowPlots
指示是否显示图的逻辑值。如果 ObjectiveMinimumTrace
EstimatedObjectiveMinimumTrace
真正的
SaveIntermediateResults
时是否保存结果的逻辑值 BayesianOptimization
假
详细的
0
1
2
详细的
名称-值参数和示例1
UseParallel
指示是否并行运行贝叶斯优化的逻辑值,这需要并行计算工具箱™。由于并行计时的不可再现性,并行贝叶斯优化不一定产生可再现的结果。详细信息请参见 假
重新分区
假
使用以下三个选项中的一个即可。
CVPartition
一个
cvpartition
“Kfold”,5
坚持
范围内的标量
Kfold
大于1的整数 “HyperparameterOptimizationOptions”、结构(MaxObjectiveEvaluations, 60)
结构体
输出参数
Mdl-训练好的线性分类模型ClassificationLinear模型对象|ClassificationPartitionedLinear交叉验证的模型对象
训练过的线性分类模型,返回为ClassificationLinear模型对象或ClassificationPartitionedLinear交叉验证的模型对象。
如果您设置了任何名称-值对参数KFold,坚持,CrossVal,或CVPartition,然后Mdl是一个ClassificationPartitionedLinear交叉验证的模型对象。否则,Mdl是一个ClassificationLinear模型对象。
引用Mdl,使用点表示法。例如,输入Mdl。β在命令窗口显示估计系数的矢量或矩阵。
请注意
与其他分类模型不同,为了节省内存使用,ClassificationLinear而且ClassificationPartitionedLinear模型对象不存储训练数据或训练过程细节(例如,收敛历史)。
FitInfo-优化细节结构数组
优化细节,作为结构数组返回。
字段指定最终值或名称-值对参数规范,例如,客观的是优化结束时目标函数的值。的值对应的多维字段行λ列对应于的值解算器.
该表描述了一些值得注意的字段。
场
描述
TerminationStatus
优化终止原因
中的值TerminationCode
FitTime
时间流逝,以秒为单位
历史
每个迭代的优化信息的结构数组。这个领域解算器存储使用整数编码的求解器类型。
整数
解算器
1
SGD
2
ASGD
3.
支持向量机的双SGD
4
LBFGS
5
高炉煤气
6
SpaRSA
要访问字段,使用点表示法。例如,要访问每个迭代的目标函数值的向量,请输入FitInfo.History.Objective.
检查是一种很好的做法FitInfo评估收敛是否令人满意。
HyperparameterOptimizationResults-超参数交叉验证优化BayesianOptimization对象|表包含超参数和相关值
超参数的交叉验证优化,返回为BayesianOptimization对象或超参数及相关值的表。的值时,输出为非空“OptimizeHyperparameters”不是“没有”.输出值取决于优化器字段的值。“HyperparameterOptimizationOptions”名称-值对参数:
的价值优化器场
的价值HyperparameterOptimizationResults
“bayesopt”(默认)
类的对象BayesianOptimization
“gridsearch”或“randomsearch”
使用的超参数表,观察到的目标函数值(交叉验证损失),以及从最低(最好)到最高(最差)的观察值排序
Mdl-训练好的线性分类模型ClassificationLinear模型对象|ClassificationPartitionedLinear交叉验证的模型对象
ClassificationLinear模型对象|ClassificationPartitionedLinear交叉验证的模型对象
训练过的线性分类模型,返回为 如果您设置了任何名称-值对参数 引用 请注意 与其他分类模型不同,为了节省内存使用,ClassificationLinear
ClassificationPartitionedLinear
KFold
坚持
CrossVal
CVPartition
FitInfo-优化细节结构数组
优化细节,作为结构数组返回。 字段指定最终值或名称-值对参数规范,例如, 该表描述了一些值得注意的字段。 优化终止原因 中的值 每个迭代的优化信息的结构数组。这个领域 要访问字段,使用点表示法。例如,要访问每个迭代的目标函数值的向量,请输入 检查是一种很好的做法λ
解算器
场 描述
TerminationStatus
FitTime
时间流逝,以秒为单位
历史
整数 解算器
1 SGD
2 ASGD
3. 支持向量机的双SGD
4 LBFGS
5 高炉煤气
6 SpaRSA
HyperparameterOptimizationResults-超参数交叉验证优化BayesianOptimization对象|表包含超参数和相关值
BayesianOptimization对象|表包含超参数和相关值
超参数的交叉验证优化,返回为BayesianOptimization
“OptimizeHyperparameters”
的价值 的价值
“bayesopt”
类的对象
BayesianOptimization
“gridsearch”
使用的超参数表,观察到的目标函数值(交叉验证损失),以及从最低(最好)到最高(最差)的观察值排序
更多关于
温暖的开始
一个温暖的开始是beta系数和偏差项的初始估计,提供给优化例程,以实现更快的收敛。
低维数据的替代方案
高维线性分类和回归模型相对快速地最小化目标函数,但代价是一定的准确性,只有数字预测变量的限制,并且模型必须是相对于参数的线性。如果您的预测器数据集是低维到中维,或包含异质变量,那么您应该使用适当的分类或回归拟合函数。为了帮助您决定哪个拟合函数适合您的低维数据集,请使用此表。
适合的模型
函数
显著的算法差异
支持向量机
二进制分类:fitcsvm
多类分类:fitcecoc
回归:fitrsvm
计算预测变量的Gram矩阵,便于进行非线性核变换。
使用SMO, ISDA或l1通过二次规划最小化quadprog(优化工具箱).
线性回归
无正则化的最小二乘:fitlm
使用套索惩罚的正则化最小二乘:套索
岭回归:脊或套索
套索实现循环坐标下降。
逻辑回归
无正则化逻辑回归:fitglm.
使用套索惩罚的正则化逻辑回归:lassoglm
fitglm实现迭代重加权最小二乘。
lassoglm实现循环坐标下降。
温暖的开始
一个温暖的开始是beta系数和偏差项的初始估计,提供给优化例程,以实现更快的收敛。
一个
低维数据的替代方案
高维线性分类和回归模型相对快速地最小化目标函数,但代价是一定的准确性,只有数字预测变量的限制,并且模型必须是相对于参数的线性。如果您的预测器数据集是低维到中维,或包含异质变量,那么您应该使用适当的分类或回归拟合函数。为了帮助您决定哪个拟合函数适合您的低维数据集,请使用此表。
适合的模型
函数
显著的算法差异
支持向量机
二进制分类:fitcsvm
多类分类:fitcecoc
回归:fitrsvm
计算预测变量的Gram矩阵,便于进行非线性核变换。
使用SMO, ISDA或l1通过二次规划最小化quadprog(优化工具箱).
线性回归
无正则化的最小二乘:fitlm
使用套索惩罚的正则化最小二乘:套索
岭回归:脊或套索
套索实现循环坐标下降。
逻辑回归
无正则化逻辑回归:fitglm.
使用套索惩罚的正则化逻辑回归:lassoglm
fitglm实现迭代重加权最小二乘。
lassoglm实现循环坐标下降。
高维线性分类和回归模型相对快速地最小化目标函数,但代价是一定的准确性,只有数字预测变量的限制,并且模型必须是相对于参数的线性。如果您的预测器数据集是低维到中维,或包含异质变量,那么您应该使用适当的分类或回归拟合函数。为了帮助您决定哪个拟合函数适合您的低维数据集,请使用此表。 二进制分类: 多类分类: 回归: 计算预测变量的Gram矩阵,便于进行非线性核变换。 使用SMO, ISDA或 无正则化的最小二乘: 使用套索惩罚的正则化最小二乘: 岭回归: 无正则化逻辑回归: 使用套索惩罚的正则化逻辑回归:
适合的模型 函数 显著的算法差异
支持向量机
fitcsvm
fitcecoc
fitrsvm
quadprog
线性回归
fitlm
套索
脊
套索
套索
逻辑回归
fitglm
lassoglm
fitglm
lassoglm
提示
最好的做法是确定预测矩阵的方向,使观察值与列相对应,并进行指定“ObservationsIn”、“列”.因此,您可以体验到优化执行时间的显著减少。
如果你的预测数据只有很少的观测值,但有很多预测变量,那么:
指定“PostFitBias”,真的.
对于SGD或ASGD求解器,设置PassLimit一个大于1的正整数,例如,5或10。这种设置通常会产生更好的准确性。
对于SGD和ASGD求解器,BatchSize影响收敛速度。
如果BatchSize太小了,是吗fitclinear在多次迭代中达到最小值,但每次迭代快速计算梯度。
如果BatchSize太大了吗fitclinear在较少的迭代中达到最小值,但每次迭代计算梯度较慢。
高学习率(见LearnRate)加速收敛到最小值,但可能导致发散(即超过最小值)。小的学习率确保收敛到最小,但可能导致缓慢的终止。
当使用套索惩罚,试验不同的值TruncationPeriod.例如,setTruncationPeriod来1,10,然后One hundred..
为了提高效率,fitclinear没有标准化预测器数据。标准化X,输入
X = bsxfun (@rdivide bsxfun (@minus X,意味着(X, 2)),性病(0,2));
代码要求将预测器和观察值定向为的行和列X,分别。此外,为了节省内存使用,代码将原始预测数据替换为标准化数据。
在训练模型之后,您可以生成C/ c++代码来预测新数据的标签。生成C/ c++代码需要MATLAB编码器™.详细信息请参见代码生成简介.
最好的做法是确定预测矩阵的方向,使观察值与列相对应,并进行指定
“ObservationsIn”、“列” .因此,您可以体验到优化执行时间的显著减少。 如果你的预测数据只有很少的观测值,但有很多预测变量,那么:
指定
“PostFitBias”,真的 . 对于SGD或ASGD求解器,设置
PassLimit
一个大于1的正整数,例如,5或10。这种设置通常会产生更好的准确性。
对于SGD和ASGD求解器,
BatchSize
影响收敛速度。 如果
BatchSize 太小了,是吗 fitclinear 在多次迭代中达到最小值,但每次迭代快速计算梯度。 如果
BatchSize 太大了吗 fitclinear 在较少的迭代中达到最小值,但每次迭代计算梯度较慢。
高学习率(见
LearnRate
)加速收敛到最小值,但可能导致发散(即超过最小值)。小的学习率确保收敛到最小,但可能导致缓慢的终止。 当使用套索惩罚,试验不同的值
TruncationPeriod
.例如,set TruncationPeriod 来 1 , 10 ,然后 One hundred. . 为了提高效率,
fitclinear 没有标准化预测器数据。标准化 X
,输入 X = bsxfun (@rdivide bsxfun (@minus X,意味着(X, 2)),性病(0,2));
代码要求将预测器和观察值定向为的行和列
X ,分别。此外,为了节省内存使用,代码将原始预测数据替换为标准化数据。
在训练模型之后,您可以生成C/ c++代码来预测新数据的标签。生成C/ c++代码需要
MATLAB编码器™ .详细信息请参见 代码生成简介 .
算法
如果你指定ValidationData,则在目标函数优化过程中:
fitclinear估计的验证损失ValidationData定期使用当前模型,并跟踪最小估计值。
当fitclinear估计验证损失,它将估计与最小估计进行比较。
当随后验证损失估计超过最小估计5倍时,fitclinear终止优化。
如果你指定ValidationData要实现交叉验证例程(CrossVal,CVPartition,坚持,或KFold),那么:
fitclinear随机分区X而且Y(或资源描述)根据您选择的交叉验证程序。
fitclinear使用训练数据分区训练模型。在目标函数优化过程中,fitclinear使用ValidationData作为终止优化的另一种可能的方法(有关详细信息,请参阅前面的项目)。
一次fitclinear在满足停车准则的前提下,基于优化后的线性系数和截距构建训练模型。
如果你实现k-fold交叉验证,以及fitclinear那么还没有用尽所有的训练集折叠fitclinear返回到步骤2,使用下一个训练集折叠进行训练。
否则,fitclinear终止训练,然后返回交叉验证的模型。
您可以确定交叉验证模型的质量。例如:
要使用步骤1中的保留数据或折叠外数据确定验证损失,请将交叉验证的模型传递给kfoldLoss.
为了预测第1步中对残留数据或折叠外数据的观察结果,将交叉验证的模型传递给kfoldPredict.
如果您指定成本,之前,权重参数时,输出模型对象将指定的值存储在成本,之前,W属性,分别。的成本属性存储用户指定的成本矩阵(C)一如既往。的之前而且W属性分别存储归一化后的先验概率和观测权重。对于模型训练,软件更新先验概率和观察权重,以纳入成本矩阵中描述的惩罚。详细信息请参见错误分类成本矩阵,先验概率和观察权重.
如果你指定
ValidationData
,则在目标函数优化过程中: fitclinear
估计的验证损失 ValidationData 定期使用当前模型,并跟踪最小估计值。 当
fitclinear 估计验证损失,它将估计与最小估计进行比较。 当随后验证损失估计超过最小估计5倍时,
fitclinear 终止优化。
如果你指定
ValidationData 要实现交叉验证例程( CrossVal
, CVPartition
, 坚持
,或 KFold
),那么: fitclinear
随机分区 X
而且 Y
(或 资源描述
)根据您选择的交叉验证程序。 fitclinear
使用训练数据分区训练模型。在目标函数优化过程中, fitclinear 使用 ValidationData 作为终止优化的另一种可能的方法(有关详细信息,请参阅前面的项目)。 一次
fitclinear 在满足停车准则的前提下,基于优化后的线性系数和截距构建训练模型。 如果你实现
k -fold交叉验证,以及 fitclinear 那么还没有用尽所有的训练集折叠 fitclinear 返回到步骤2,使用下一个训练集折叠进行训练。 否则,
fitclinear 终止训练,然后返回交叉验证的模型。
您可以确定交叉验证模型的质量。例如:
要使用步骤1中的保留数据或折叠外数据确定验证损失,请将交叉验证的模型传递给
kfoldLoss . 为了预测第1步中对残留数据或折叠外数据的观察结果,将交叉验证的模型传递给
kfoldPredict .
如果您指定
成本
, 之前
, 权重
参数时,输出模型对象将指定的值存储在 成本 , 之前 , W 属性,分别。的 成本 属性存储用户指定的成本矩阵( C )一如既往。的 之前 而且 W 属性分别存储归一化后的先验概率和观测权重。对于模型训练,软件更新先验概率和观察权重,以纳入成本矩阵中描述的惩罚。详细信息请参见 错误分类成本矩阵,先验概率和观察权重 .
参考文献
[1]谢长杰,张桂文,林长杰,s.s. Keerthi, s.s Sundararajan。大规模线性支持向量机的双坐标下降方法。第25届国际机器学习会议论文集,ICML ' 08, 2001, pp. 408-415。
[2] Langford, J., Li ., and T. Zhang。“通过截断梯度的稀疏在线学习。”j·马赫。学习。Res。, Vol. 10, 2009, pp. 777-801。
[3]诺西德尔,J.和S. J.赖特。数值优化,第二版,纽约:施普林格,2006。
[4]沙利夫-施瓦兹,S. Y.辛格和N.斯雷布罗。Pegasos:支持向量机的原始估计次梯度求解器第24届机器学习国际会议论文集,ICML ' 07, 2007,第807-814页。
[5]赖特,S. J. R. D.诺瓦克,M. A. T.菲格雷多。"可分离近似的稀疏重建"反式。Proc团体。,卷57,第7期,2009,第2479-2493页。
小,林。正则化随机学习和在线优化的双平均方法j·马赫。学习。Res。, Vol. 11, 2010, pp. 2543-2596。
徐伟。“用平均随机梯度下降法实现最优一次大规模学习”相关系数, abs/1107.2490, 2011。
[1]谢长杰,张桂文,林长杰,s.s. Keerthi, s.s Sundararajan。大规模线性支持向量机的双坐标下降方法。
[2] Langford, J., Li ., and T. Zhang。“通过截断梯度的稀疏在线学习。”
[3]诺西德尔,J.和S. J.赖特。
[4]沙利夫-施瓦兹,S. Y.辛格和N.斯雷布罗。Pegasos:支持向量机的原始估计次梯度求解器
[5]赖特,S. J. R. D.诺瓦克,M. A. T.菲格雷多。"可分离近似的稀疏重建"
小,林。正则化随机学习和在线优化的双平均方法
徐伟。“用平均随机梯度下降法实现最优一次大规模学习”
扩展功能
高大的数组使用行数超过内存容量的数组进行计算。
使用注意事项和限制:
fitclinear不支持高金宝app表格数据。
与内存中的默认值相比,一些名称-值对参数具有不同的默认值fitclinear函数。金宝app支持的名称-值对参数,以及任何差异,是:
“ObservationsIn”—仅金宝app支持“行”.
“λ”-可以“汽车”(默认值)或标量。
“学习者”
“正规化”—仅金宝app支持“岭”.
“规划求解”—仅金宝app支持“lbfgs”.
“FitBias”—仅金宝app支持真正的.
“详细”—默认值为1.
“β”
“偏见”
“类名”
“成本”
“之前”
“重量”—Value必须为高数组。
“HessianHistorySize”
“BetaTolerance”—将默认值放宽为1 e - 3.
“GradientTolerance”—将默认值放宽为1 e - 3.
“IterationLimit”—将默认值放宽为20..
“OptimizeHyperparameters”-价值“正规化”参数必须为“岭”.
“HyperparameterOptimizationOptions”-对于交叉验证,只支持高优化金宝app“坚持”验证。默认情况下,软件选择并保留20%的数据作为拒绝验证数据,并使用其余数据训练模型。可以使用此参数为拒绝分数指定不同的值。例如,指定“HyperparameterOptimizationOptions”、结构(“抵抗”,0.3)保留30%的数据作为验证数据。
对于高数组,fitclinear通过在每次迭代中将损失和梯度计算分布到高阵列的不同部分来实现LBFGS。其他求解器不能用于高数组。当初始值为β而且偏见不是给定的,fitclinear通过将模型局部拟合到部分数据,并通过求平均来组合系数,从而改进参数的初始估计。
有关更多信息,请参见高大的数组.
自动平行支撑金宝app通过使用并行计算工具箱™自动并行运行计算来加速代码。
要执行并行超参数优化,请使用“HyperparameterOptimizationOptions”、结构(UseParallel,真的)类调用中的名称-值参数fitclinear函数。
有关并行超参数优化的更多信息,请参见并行贝叶斯优化.
有关并行计算的一般信息,请参见运行MATLAB函数与自动并行支持金宝app(并行计算工具箱).
高大的数组使用行数超过内存容量的数组进行计算。
使用注意事项和限制: 与内存中的默认值相比,一些名称-值对参数具有不同的默认值 对于高数组, 当初始值为 有关更多信息,请参见
fitclinear
“ObservationsIn”
“λ”
“学习者”
“正规化”
“规划求解”
“FitBias”
“详细”
“β”
“偏见”
“类名”
“成本”
“之前”
“重量”
“HessianHistorySize”
“BetaTolerance”
“GradientTolerance”
“IterationLimit”
“OptimizeHyperparameters”
“HyperparameterOptimizationOptions”
自动平行支撑金宝app通过使用并行计算工具箱™自动并行运行计算来加速代码。
要执行并行超参数优化,请使用 有关并行超参数优化的更多信息,请参见 有关并行计算的一般信息,请参见
版本历史
在R2016a中引入
R2022a:正则化方法确定超参数优化过程中使用的求解器
R2022a的行为发生了变化
从R2022a开始,当指定优化超参数而不指定解算器值,fitclinear根据每次超参数优化迭代中选择的正则化类型,使用有限内存BFGS (LBFGS)求解器或可分离近似稀疏重建(SpaRSA)求解器。
当正则化是“岭”,函数设置解算器价值“lbfgs”默认情况下。
当正则化是“套索”,函数设置解算器价值“sparsa”默认情况下。
在以前的版本中,超参数优化期间的默认求解器选择取决于各种因素,包括正则化类型、学习器类型和预测器的数量。有关更多信息,请参见解算器.
R2022a:正则化方法确定超参数优化过程中使用的求解器
R2022a的行为发生了变化
从R2022a开始,当指定优化超参数而不指定解算器值,fitclinear根据每次超参数优化迭代中选择的正则化类型,使用有限内存BFGS (LBFGS)求解器或可分离近似稀疏重建(SpaRSA)求解器。
当正则化是“岭”,函数设置解算器价值“lbfgs”默认情况下。
当正则化是“套索”,函数设置解算器价值“sparsa”默认情况下。
在以前的版本中,超参数优化期间的默认求解器选择取决于各种因素,包括正则化类型、学习器类型和预测器的数量。有关更多信息,请参见解算器.
R2022a的行为发生了变化
从R2022a开始,当指定优化超参数而不指定 当 当 在以前的版本中,超参数优化期间的默认求解器选择取决于各种因素,包括正则化类型、学习器类型和预测器的数量。有关更多信息,请参见
解算器
Beispiel offnen
Sie haben eine geänderte版本dieses Beispiels。Möchten Sie dieses Beispiel mit Ihren Änderungen öffnen?
MATLAB-Befehl
你的身体和身体之间的联系MATLAB-Befehl Führen Sie den Befehl durch Eingabe in das MATLAB-Befehlsfenster aus。web浏览器unterstützen keine MATLAB-Befehle。
您也可以从以下列表中选择一个网站: 选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。如何获得最佳的网站性能
欧洲