利用随机特征展开拟合高斯核回归模型
fitrkernel
火车或交叉验证高斯核回归模型非线性回归。fitrkernel
更实际的使用具有较大的训练集大数据的应用程序,但也可以应用于装入内存较小的数据集。
fitrkernel
在低维空间成高维空间映射数据,则通过最小化正则化目标函数配合在高维空间中的线性模型。获得在高维空间中的线性模型相当于将所述高斯核在低维空间中的模型。可用的线性回归模型包括正则化的支持向量机(SVM)和最小二乘回归模型。万博1manbetx
要培养对内存中的数据非线性SVM回归模型,看看fitrsvm
。
[
当您使用的优化超参数也返回超参数优化结果Mdl
,FitInfo
,HyperparameterOptimizationResults
)= fitrkernel (___)'OptimizeHyperparameters'
名称-值对的论点。
使用支持向量机对一个高数组的核回归模型进行训练。
当您在高大的阵列进行计算,MATLAB®使用使用并行池(默认情况下,如果您有并行计算工具箱™)或本地MATLAB会话。如果你想使用时,你有并行计算工具箱本地MATLAB会话运行示例,您可以通过使用改变全球执行环境mapreducer
功能。
创建数据存储引用的数据的文件夹位置。该数据可以包含在一个单一的文件,文件的集合,或整个文件夹。对待'NA'
值作为缺失的数据,以便数据存储
它们替换南
值。选择的变量使用的一个子集。在数据存储之上创建一个高台。
varnames = {'ArrTime','DepTime',“ActualElapsedTime”};DS =数据存储区('airlinesmall.csv','TreatAsMissing','NA',...'SelectedVariableNames',varnames);t =高(ds);
开始使用“本地”轮廓平行池(parpool)......连接到并行池(工号:4)。
指定DepTime
和ArrTime
为预测变量(X
)和ActualElapsedTime
作为响应变量(ÿ
)。选择其中的意见ArrTime
晚于DepTime
。
白天= t.ArrTime> t.DepTime;Y = t.ActualElapsedTime(白天);%响应数据X = t{白天,{'DepTime''ArrTime'}};%预测数据
标准化预测变量。
Z = zscore(X);%标准化数据
培养一个默认的高斯核回归模型的标准化预测。提取一个合适的汇总,确定优化算法如何适合的模型与数据。
[铜牌,FitInfo] = fitrkernel(Z,Y)
发现6块。| ========================================================================= |求解器|迭代/ |目的|梯度|贝塔相对|||数据传递| | magnitude | change | |========================================================================= | INIT | 0 / 1 | 4.307833e+01 | 4.345788e-02 | NaN | | LBFGS | 0 / 2 | 3.705713e+01 | 1.577301e-02 | 9.988252e-01 | | LBFGS | 1 / 3 | 3.704022e+01 | 3.082836e-02 | 1.338410e-03 | | LBFGS | 2 / 4 | 3.701398e+01 | 3.006488e-02 | 1.116070e-03 | | LBFGS | 2 / 5 | 3.698797e+01 | 2.870642e-02 | 2.234599e-03 | | LBFGS | 2 / 6 | 3.693687e+01 | 2.625581e-02 | 4.479069e-03 | | LBFGS | 2 / 7 | 3.683757e+01 | 2.239620e-02 | 8.997877e-03 | | LBFGS | 2 / 8 | 3.665038e+01 | 1.782358e-02 | 1.815682e-02 | | LBFGS | 3 / 9 | 3.473411e+01 | 4.074480e-02 | 1.778166e-01 | | LBFGS | 4 / 10 | 3.684246e+01 | 1.608942e-01 | 3.294968e-01 | | LBFGS | 4 / 11 | 3.441595e+01 | 8.587703e-02 | 1.420892e-01 | | LBFGS | 5 / 12 | 3.377755e+01 | 3.760006e-02 | 4.640134e-02 | | LBFGS | 6 / 13 | 3.357732e+01 | 1.912644e-02 | 3.842057e-02 | | LBFGS | 7 / 14 | 3.334081e+01 | 3.046709e-02 | 6.211243e-02 | | LBFGS | 8 / 15 | 3.309239e+01 | 3.858085e-02 | 6.411356e-02 | | LBFGS | 9 / 16 | 3.276577e+01 | 3.612292e-02 | 6.938579e-02 | | LBFGS | 10 / 17 | 3.234029e+01 | 2.734959e-02 | 1.144307e-01 | | LBFGS | 11 / 18 | 3.205763e+01 | 2.545990e-02 | 7.323180e-02 | | LBFGS | 12 / 19 | 3.183341e+01 | 2.472411e-02 | 3.689625e-02 | | LBFGS | 13 / 20 | 3.169307e+01 | 2.064613e-02 | 2.998555e-02 | |========================================================================= | Solver | Iteration / | Objective | Gradient | Beta relative | | | Data Pass | | magnitude | change | |========================================================================= | LBFGS | 14 / 21 | 3.146896e+01 | 1.788395e-02 | 5.967293e-02 | | LBFGS | 15 / 22 | 3.118171e+01 | 1.660696e-02 | 1.124062e-01 | | LBFGS | 16 / 23 | 3.106224e+01 | 1.506147e-02 | 7.947037e-02 | | LBFGS | 17 / 24 | 3.098395e+01 | 1.564561e-02 | 2.678370e-02 | | LBFGS | 18 / 25 | 3.096029e+01 | 4.464104e-02 | 4.547148e-02 | | LBFGS | 19 / 26 | 3.085475e+01 | 1.442800e-02 | 1.677268e-02 | | LBFGS | 20 / 27 | 3.078140e+01 | 1.906548e-02 | 2.275185e-02 | |========================================================================|
MDL = RegressionKernel PredictorNames:{X1 '×2'} ResponseName: 'Y' 学习者: 'SVM' NumExpansionDimensions:64 KernelScale:1 LAMBDA:8.5385e-06 BoxConstraint:1的Epsilon:5.9303属性,方法
FitInfo =结构体字段:求解: 'LBFGS高的' LossFunction:“epsiloninsensitive的lambda:8.5385e-06 BetaTolerance:1.0000e-03 GradientTolerance:1.0000e-05 ObjectiveValue:30.7814 GradientMagnitude:0.0191 RelativeChangeInBeta:0.0228 FitTime:111.1610历史:[1x1的结构]
Mdl
是RegressionKernel
模型。要检查回归错误,你可以通过Mdl
和训练数据或新数据失利
功能。或者,你可以通过Mdl
而新的预测数据到预测
功能来预测新的观测回应。您也可以通过Mdl
和训练数据的恢复
功能继续培训。
FitInfo
是一个包含优化信息的结构数组。使用FitInfo
确定优化终端测量是否令人满意。
为了提高精度,可以提高优化迭代的最大数量('IterationLimit'
),并降低公差值('BetaTolerance'
和'GradientTolerance'
)通过使用的名称 - 值对参数fitrkernel
。这样做可以提高类似措施ObjectiveValue
和RelativeChangeInBeta
在FitInfo
。属性还可以优化模型参数'OptimizeHyperparameters'
名称-值对的论点。
加载carbig
数据集。
加载carbig
指定预测变量(X
)和响应变量(ÿ
)。
X = [加速,缸,排气量,马力,重量];Y = MPG;
删除行X
和ÿ
其中任意一个数组南
值。删除行南
将数据传递到前值fitrkernel
可加快训练速度和减少内存使用。
R = rmmissing([X Y]);%数据去掉缺少的项X = R(:,1:5);Y = R(:,端);
标准化预测变量。
Z = zscore(X);
交叉验证使用内核回归模型5倍交叉验证。
MDL = fitrkernel(Z,Y,'Kfold',5)
MDL = classreg.learning.partition.RegressionPartitionedKernel CrossValidatedModel: '核心' ResponseName: 'Y' NumObservations:392 KFold:5分区:[1x1的cvpartition] ResponseTransform: '无' 的属性,方法
numel(Mdl.Trained)
ans = 5
Mdl
是RegressionPartitionedKernel
模型。因为fitrkernel
工具5倍交叉验证,Mdl
包含五个RegressionKernel
模型上的软件火车训练倍(以倍)观察。
检查每个折交叉验证损耗(均方误差)。
kfoldLoss(MDL,'模式','个人')
ans =5×113.0610 14.0975 24.0104 21.1223 24.3979
自动使用优化的超参数'OptimizeHyperparameters'
名称-值对的论点。
加载carbig
数据集。
加载carbig
指定预测变量(X
)和响应变量(ÿ
)。
X = [加速,缸,排气量,马力,重量];Y = MPG;
删除行X
和ÿ
其中任意一个数组南
值。删除行南
将数据传递到前值fitrkernel
可加快训练速度和减少内存使用。
R = rmmissing([X Y]);%数据去掉缺少的项X = R(:,1:5);Y = R(:,端);
标准化预测变量。
Z = zscore(X);
发现超参数,通过使用自动超参数优化减少五倍交叉验证的损失。指定'OptimizeHyperparameters'
如'汽车'
以便fitrkernel
的最优值'KernelScale'
,“拉姆达”
,“小量”
名称-值对参数。为了重现性,设置随机种子并使用“预计-改善,加上”
采集功能。
RNG('默认')[铜牌,FitInfo,HyperparameterOptimizationResults] = fitrkernel(Z,Y,'OptimizeHyperparameters','汽车',...'HyperparameterOptimizationOptions',结构('AcquisitionFunctionName',“预计-改善,加上”))
| ==================================================================================================================== ||ITER |EVAL |目的:|目的|BestSoFar |BestSoFar |KernelScale |LAMBDA | Epsilon | | | result | log(1+loss) | runtime | (observed) | (estim.) | | | | |====================================================================================================================| | 1 | Best | 4.8295 | 5.7317 | 4.8295 | 4.8295 | 0.011518 | 6.8068e-05 | 0.95918 |
|2 |最佳|4.1488 |0.3083 |4.1488 |4.1855 |477.57 |0.066115 |0.091828 |
| 3 |接受| 4.1521 b| 0.19035 | 4.1488 bb5 4.1747 | 0.0080478 | 0.0052867 | 520.84 |
|4 |接受|4.1506 |0.189 |4.1488 |4.1488 |0.10935 |0.35931 |0.013372 |
|5 |最佳|4.1446 |0.24663 |4.1446 |4.1446 |326.29 |2.5457 |0.22475 |
|6 |接受|4.1521 |0.11924 |4.1446 |4.1447 |719.11 |0.19478 |881.84 |
|7 |接受|4.1501 |0.12915 |4.1446 |4.1461 |0.052426 |2.5402 |0.051319 |
|8 |接受|4.1521 |0.12022 |4.1446 |4.1447 |990.71 |0.014203 |702.34 |
| 9 |接受| 4.1521 | 0.11993 | 4.1446 | 4.1465 | 415.85 | 0.054602 | 81.005 |
|10 |接受|4.1454 |0.12647 |4.1446 |4.1455 |972.49 |1.1601 |1.8715 |
|11 |接受|4.1495 |0.14511 |4.1446 |4.1473 |121.79 |1.4077 |0.061055 |
|12 |接受|4.1521 |0.13289 |4.1446 |4.1474 |985.81 |0.83297 |2134.5 |
|13 |最佳|4.1374 |0.14016 |4.1374 |4.1441 |167.34 |2.5497 |4.8997 |
| 14 |接受| 4.1434 0.12979 | 4.1374 | 4.1437 | 74.527 | 2.55 | 6.1044 |
|15 |接受|4.1402 |0.1309 |4.1374 |4.1407 |877.17 |2.5391 |2.2888 |
|16 |接受|4.1436 |0.1382 |4.1374 |4.1412 |0.0010354 |0.017613 |0.11811 |
|17 |最佳|4.1346 |0.16029 |4.1346 |4.1375 |0.0010362 |0.010401 |8.9719 |
| 18 |接受| 4.1521 b| 0.11671 | 4.1346 bb5 4.1422 | 0.0010467 | 0.0094817 | 563.96 |
|19 |接受|4.1508 |0.12426 |4.1346 |4.1367 |760.12 |0.0079557 |0.009087 |
|20 |接受|4.1435 |0.17071 |4.1346 |4.143 |0.020647 |0.0089063 |2.3699 |
| ==================================================================================================================== ||ITER |EVAL |目的:|目的|BestSoFar |BestSoFar |KernelScale |LAMBDA | Epsilon | | | result | log(1+loss) | runtime | (observed) | (estim.) | | | | |====================================================================================================================| | 21 | Best | 3.7172 | 0.16359 | 3.7172 | 3.7174 | 818.08 | 2.5529e-06 | 2.1058 |
|22 |接受|4.1521 |0.13821 |3.7172 |3.7177 |0.006272 |2.5598e-06 |93.063 |
|23 |接受|4.0567 |0.13225 |3.7172 |3.7176 |940.43 |2.6941e-06 |0.12016 |
|24 |最佳|2.8979 |0.29659 |2.8979 |2.8979 |37.141 |2.5677e-06 |2.71 |
|25 |接受|4.1521 |0.11604 |2.8979 |2.898 |13.817 |2.5755e-06 |863.91 |
| 26 |最佳| 2.795 | 0.33366 | 2.795 bb5 2.7953 bb6 20.022 | 2.6098e-06 | 1.6561 |
| 27 |接受| 2.8284 b| 0.3162 | 2.795 bb5 2.7956 | 17.252 | 2.7719 -06 | 0.82777 |
| 28 b|最佳| 2.7896 b| 0.32609 2.7896 | 2.7898 | 11.432 | 7.621 -06 | 2.094 |
| 29 |接受| 2.8194 | 0.78505 | 2.7896 | 2.7899 | 8.5133 | 2.5872e-06 | 2.0567 |
|30 |接受|2.8061 |0.36604 |2.7896 |2.7968 |15.823 |6.1956e-06 |2.0085 |
__________________________________________________________优化完成。30 MaxObjectiveEvaluations达到。总功能评价:30总运行时间:41.1197秒。总目标函数评估时间:11.6437最佳观察到的可行点:KernelScale LAMBDA小量___________ _________ _______ 11.432 7.621e-06 2.094观测目标函数值= 2.7896估计目标函数值= 2.7984函数求时间= 0.32609最佳估计可行点(根据型号):KernelScale LAMBDA小量___________ __________ _______ 15.823 6.1956e-06 2.0085估计目标函数值= 2.7968估计函数评估时间= 0.34338
MDL = RegressionKernel ResponseName: 'Y' 学习者: 'SVM' NumExpansionDimensions:256 KernelScale:15.8229 LAMBDA:6.1956e-06 BoxConstraint:411.7488小量:2.0085的属性,方法
FitInfo =结构体字段:求解器:“lbfs -fast”损耗函数:“爱扑塞隆不敏感”Lambda: 6.1956 -06 betatance: 1.0000e-04梯度容差:1.0000e-06客观评价:1.3582梯度大小:0.0051相对hangeinbeta: 5.3944 -05 FitTime: 0.0665历史:[]
HyperparameterOptimizationResults = BayesianOptimization与属性:ObjectiveFcn:@ createObjFcn / inMemoryObjFcn VariableDescriptions:[5×1 optimizableVariable]选项:[1×1结构] MinObjective:2.7896 XAtMinObjective:[1×3表] MinEstimatedObjective:2.7968 XAtMinEstimatedObjective:[1×3表]NumObjectiveEvaluations:30 TotalElapsedTime:41.1197 NextPoint公司:[1×3表] X跟踪:[30×3表] ObjectiveTrace:[30×1双] ConstraintsTrace:[] UserDataTrace:{30×1细胞} ObjectiveEvaluationTimeTrace:[30×1双]IterationTimeTrace:[30×1双] ErrorTrace:[30×1双] FeasibilityTrace:[30×1逻辑] FeasibilityProbabilityTrace:[30×1双] IndexOfMinimumTrace:[30×1双] ObjectiveMinimumTrace:[30×1双] EstimatedObjectiveMinimumTrace:[30×1双]
对于大数据,优化过程可能需要很长的时间。如果数据集太大,运行优化程序,你可以尝试优化只使用部分数据的参数。使用datasample
功能和指定“替换”,“假”
到无需更换采样数据。
X
-预测数据ÿ
-响应数据响应数据,指定为ñ维数值向量。长度ÿ
和观察的数量X
必须相等。
数据类型:单
|双
fitrkernel
删除丢失的观察,就是观察与任何特点:
南
回应的要素(ÿ
)
最后一个南
值在预测器观测中(行中)X
)
南
值或0
体重(“权重”
)
的可选逗号分隔对名称,值
参数。的名字
是参数的名称和价值
为对应值。的名字
必须出现在引号内。可以按任意顺序指定多个名称和值对参数名1,值1,...,NameN,值N
。
MDL = fitrkernel(X,Y, '学习者', '最小二乘法', 'NumExpansionDimensions',2 ^ 15, 'KernelScale', '自动')
映射预测数据到后器具最小二乘回归2 ^ 15
使用具有由启发式的过程选择的内核比例参数特征膨胀维空间。
你可以不使用任何交叉验证名称 - 值对参数与沿'OptimizeHyperparameters'
名称-值对的论点。您可以修改交叉验证'OptimizeHyperparameters'
只有通过使用'HyperparameterOptimizationOptions'
名称-值对的论点。
'BoxConstraint'
-箱约束1
(默认)|正标量箱约束,指定为逗号分隔的一对组成的'BoxConstraint'
一个正标量。
此论证仅在以下情况下有效“学习者”
是'SVM'
(默认),你不指定正规化长期强度值“拉姆达”
。你可以指定'BoxConstraint'
或“拉姆达”
由于箱约束(C)和正则化项强度(λ)与…有关C= 1 /(λñ),其中ñ是观测值的数量(行中X
)。
例:'BoxConstraint',100
数据类型:单
|双
“小量”
-不敏感带的半宽度'汽车'
(默认)|负的标量值的ε不敏感带的宽度的一半,指定为逗号分隔的一对组成的“小量”
和'汽车'
或一个非负的标量值。
对于'汽车'
中,fitrkernel
函数决定的值小量
如IQR(Y)/13.49
,这是使用响应变量的四分位范围的标准偏差的第十的估计ÿ
。如果IQR(Y)
等于零,则fitrkernel
设置的值小量
0.1。
“小量”
才有效学习者
是支持向量机
。
例:'小量',0.3
数据类型:单
|双
'NumExpansionDimensions'
-扩大空间的维数'汽车'
(默认)|正整数膨胀空间的维数,指定为逗号分隔的一对组成的'NumExpansionDimensions'
和'汽车'
或一个正整数。对于'汽车'
中,fitrkernel
函数选择使用维数2. ^小区(分钟(LOG2(P)+5,15))
,其中p
是预测的数目。
例:'NumExpansionDimensions',2 ^ 15
数据类型:烧焦
|串
|单
|双
“拉姆达”
-正则长期强度'汽车'
(默认)|负的标量正则化项的强度,指定为逗号分隔的一对组成的“拉姆达”
和'汽车'
或自然标。
对于'汽车'
, 的价值“拉姆达”
为1 /ñ,其中ñ是观测值的数量(行中X
)。
你可以指定'BoxConstraint'
或“拉姆达”
由于箱约束(C)和正则化项强度(λ)与…有关C= 1 /(λñ)。
例:'LAMBDA',0.01
数据类型:烧焦
|串
|单
|双
“学习者”
-线性回归模型类型'SVM'
(默认)|“最小二乘法”
线性回归模型的类型,指定为逗号分隔的一对组成的“学习者”
和'SVM'
或“最小二乘法”
。
在下表中,
X是从观察(行矢量)p预测变量。
是一种观测(行向量)的变换,用于特征扩展。Ť(X)地图X在 到一个高维空间( )。
β是向量米系数。
b是标量偏差。
价值Ťh> | 算法Ťh> | 响应范围Ťh> | 损失函数Ťh> |
---|---|---|---|
“最小二乘法” |
普通最小二乘线性回归Ťd> | ÿε(-∞,∞)Ťd> | 均方误差(MSE): |
'SVM' |
万博1manbetx支持向量机回归Ťd> | 和...一样“最小二乘法” |
小量不敏感: |
例:“学习者”,“leastsquares”
“放牧”
-详细级别0
(默认)|1
详细级别,指定为逗号分隔的一对组成的“放牧”
,要么0
或1
。详细的
控制的诊断信息的量fitrkernel
显示在命令行。
价值Ťh> | 描述Ťh> |
---|---|
0 |
fitrkernel 不显示诊断信息。Ťd>
|
1 |
fitrkernel 显示和存储目标函数的值、梯度大小和其他诊断信息。FitInfo.History 包含诊断信息。Ťd>
|
例:'冗长',1
数据类型:单
|双
'BLOCKSIZE'
-分配的内存的最高限额4E ^ 3
(4GB)(默认)|正标量分配的存储器的最大量(以MB为单位),指定为逗号分隔的一对组成的'BLOCKSIZE'
一个正标量。
如果fitrkernel
需要比的值以上存储器BlockSize
持有变换预测数据,然后MATLAB使用块明智的策略。有关逐块策略的详细信息,请参阅算法。
例:e4 BlockSize, 1
数据类型:单
|双
'RandomStream'
-随机数流随机数流进行数据变换的再现性,指定为逗号分隔的一对组成的'RandomStream'
和随机流对象。有关详细信息,请参阅随机功能扩展。
使用'RandomStream'
重现随机基函数fitrkernel
用于转换数据X
到一个高维空间。有关详细信息,请参阅管理全局流(MATLAB)和创建和控制一个随机数流(MATLAB)。
例:'RandomStream',RandStream( 'mlfg6331_64')
'ResponseTransform'
-响应转换“没有”
(默认)|功能手柄响应变换,指定为逗号分隔的一对组成的'ResponseTransform'
,要么“没有”
或功能句柄。默认值是“没有”
, 意思是@ (y) y
,或者没有转化。对于MATLAB函数或您定义的函数,使用其函数句柄。函数句柄必须接受向量(原始响应值)并返回相同大小的向量(转换后的响应值)。
例:假设你创建通过使用采用一种指数转化为输入向量函数句柄myfunction的= @(Y)EXP(y)的
。然后,您可以将响应转换指定为'ResponseTransform',myfunction的
。
数据类型:烧焦
|串
|function_handle
“权重”
-观察权重那些(ñ1)/ñ
(默认)|正值的数值向量观察权重,指定为逗号分隔的一对组成的“权重”
和正值的数值向量。fitrkernel
晕死意见X
与在相应的值权重
。的大小权重
必须等于ñ,观测的数量(行中X
)。
fitrkernel
规范化权重
使和等于1。
数据类型:双
|单
'CrossVal'
-交叉验证标志“关”
(默认)|'上'
交叉验证标志,指定为逗号分隔的对,由“Crossval”
和'上'
或“关”
。
如果您指定'上'
,然后软件实现10倍交叉验证。
您可以使用覆盖此交叉验证设置CVPartition
,坚持
,KFold
,或忽略
名称-值对的论点。每次只能使用一个交叉验证的名称-值对参数来创建交叉验证的模型。
例:'Crossval', '上'
'CVPartition'
-交叉验证分区[]
(默认)|cvpartition
分区对象交叉验证分区,指定为逗号分隔的对,由'CVPartition'
和一个cvpartition
分区对象通过创建cvpartition
。分区对象指定交叉验证的类型和用于训练和验证集的索引。
要创建一个交叉验证模型,你可以使用的只有这四个名字 - 值对参数之一:CVPartition
,坚持
,KFold
,或忽略
。
例:假设你创建一个随机分区通过使用500个观察5倍交叉验证CVP = cvpartition(500, 'KFold',5)
。然后,您可以通过使用指定交叉验证模型'CVPartition',CVP
。
“坚持”
-用于抵抗验证数据的分数用于抵抗验证数据,指定为逗号分隔的一对组成的部分“坚持”
和范围内的(0,1)的标量值。如果您指定‘坚持’,p
,那么软件完成以下步骤:
随机选择和储备P * 100
%的数据作为验证数据,并使用剩下的数据训练模型。
存储在紧凑,训练模型熟练
交叉验证模型的性能。
要创建一个交叉验证模型,你可以使用的只有这四个名字 - 值对参数之一:CVPartition
,坚持
,KFold
,或忽略
。
例:'不吸墨性',0.1
数据类型:双
|单
'KFold'
-褶皱的数10
(默认)|正整数值大于1的褶皱的数目在一个交叉验证模型中使用,指定为逗号分隔的一对组成的'KFold'
和一个大于1的正整数。如果您指定KFold, k
,那么软件完成以下步骤:
随机将数据划分为ķ
集。
对于每一组,保留所述一组作为验证数据,并且使用其它训练模型ķ
- 1集。
存储ķ
在的细胞结构紧凑,训练的模型ķ
-by-1在细胞中载体熟练
交叉验证模型的性能。
要创建一个交叉验证模型,你可以使用的只有这四个名字 - 值对参数之一:CVPartition
,坚持
,KFold
,或忽略
。
例:“KFold”, 5
数据类型:单
|双
“Leaveout”
-留一法交叉验证标志“关”
(默认)|'上'
left -one-out交叉验证标志,指定为逗号分隔的对,由“Leaveout”
和'上'
或“关”
。如果您指定'Leaveout', '上'
,那么,对于每一个ñ观察(其中ñ为排除缺失观察)观测次数,软件完成以下步骤:
储备观测作为验证数据,并使用其他训练模型ñ- 1点意见。
存储ñ在的细胞结构紧凑,训练的模型ñ-by-1在细胞中载体熟练
交叉验证模型的性能。
要创建一个交叉验证模型,你可以使用的只有这四个名字 - 值对参数之一:CVPartition
,坚持
,KFold
,或忽略
。
例:'Leaveout', '上'
'BetaTolerance'
-线性系数和偏项的相对宽容1E-5
(默认)|负的标量相对公差上的线性系数和偏置项(截距),指定为逗号分隔对所组成'BetaTolerance'
和一个非负标量。
让 ,即优化迭代时系数的向量和偏置项Ť。如果 ,则优化终止。
如果你还指定GradientTolerance
,当软件满足任一停止条件时,优化终止。
例:'BetaTolerance',1E-6
数据类型:单
|双
'GradientTolerance'
-绝对梯度容差1E-6
(默认)|负的标量绝对梯度公差,指定为逗号分隔的一对组成的'GradientTolerance'
和一个非负标量。
让 为目标函数相对于优化迭代的系数和偏置项的梯度向量Ť。如果 ,则优化终止。
如果你还指定BetaTolerance
,当软件满足任一停止条件时,优化终止。
例:'GradientTolerance',1E-5
数据类型:单
|双
'HessianHistorySize'
-历史缓冲区的大小近似的Hessian15
(默认)|正整数用于近似的Hessian历史缓冲器的大小,指定为逗号分隔的一对组成的'HessianHistorySize'
和一个正整数。在每次迭代中,fitrkernel
使用最新的统计数据组成黑森HessianHistorySize
迭代。
例:'HessianHistorySize',10
数据类型:单
|双
'IterationLimit'
-优化迭代的最大次数优化的迭代的最大次数,指定为逗号分隔的一对组成的'IterationLimit'
和一个正整数。
默认值是1000,如果在存储器中的变换后的数据拟合,如通过指定BlockSize
。否则,默认值为100。
例:“IterationLimit”, 500年
数据类型:单
|双
'OptimizeHyperparameters'
-参数来优化“没有”
(默认)|'汽车'
|'所有'
|字符串数组或符合条件的参数名的单元阵列|向量的optimizableVariable
对象参数来优化,指定为逗号分隔的一对组成的'OptimizeHyperparameters'
这些值之一:
“没有”
-不要优化。
'汽车'
- 用{ 'KernelScale', 'LAMBDA', '小量'}
。
'所有'
- 优化所有符合条件的参数。
单元阵列合格的参数名。
向量的optimizableVariable
对象,通常输出超参数
。
优化的尝试,以尽量减少交叉验证的损失(错误)fitrkernel
通过改变参数。为了控制交叉验证类型和优化等方面,使用HyperparameterOptimizationOptions
名称-值对的论点。
'OptimizeHyperparameters'
值覆盖使用其他名称-值对参数设置的任何值。例如,设置'OptimizeHyperparameters'
来'汽车'
导致'汽车'
值适用。
符合条件的参数fitrkernel
是:
小量
-fitrkernel
正值中搜索,默认登录缩放范围(1 e - 3, 1 e2) *差(Y) / 1.349
。
KernelScale
-fitrkernel
正值中搜索,默认登录缩放范围[1E-3,1e3]
。
λ
-fitrkernel
正值中搜索,默认登录缩放范围(1 e - 3, 1 e3) / n
,其中ñ
是观测值的数量。
学习者
-fitrkernel
搜索中'SVM'
和“最小二乘法”
。
NumExpansionDimensions
-fitrkernel
正整数中的搜索,默认登录缩放范围(100、10000)
。
通过传递向量设置非默认参数optimizableVariable
具有非默认值的对象。例如:
加载carsmallPARAMS =超参数('fitrkernel'[马力,重量],MPG);PARAMS(2).Range = [1E-4,1e6];
通过PARAMS
作为价值'OptimizeHyperparameters'
。
默认情况下,迭代显示出现在命令行,并重复根据在优化超参数的数量出现。对于优化和情节,目标函数是日志(1 +交叉验证丢失)用于回归,用于分类的误分类率。要控制迭代显示,请设置详细的
领域'HyperparameterOptimizationOptions'
名称-值对的论点。为了控制地块,设置ShowPlots
领域'HyperparameterOptimizationOptions'
名称-值对的论点。
例如,请参阅优化内核回归。
例:“OptimizeHyperparameters”、“汽车”
'HyperparameterOptimizationOptions'
-优化选项选项的优化,指定为逗号分隔对组成'HyperparameterOptimizationOptions'
和结构。这种说法修改的效果OptimizeHyperparameters
名称-值对的论点。结构中的所有字段都是可选的。
字段名称Ťh> | 值Ťh> | 默认的Ťh> |
---|---|---|
优化 |
|
'bayesopt' |
AcquisitionFunctionName |
名称包括的获取函数 |
“预计-改善每秒加” |
MaxObjectiveEvaluations |
目标函数评估的最大数量。Ťd> | 30. 对于'bayesopt' 或'randomsearch' ,以及整个网格'gridsearch' |
MAXTIME |
时间限制,指定为正实。时间限制是在几秒钟内,如通过测量 |
天道酬勤 |
NumGridDivisions |
对于'gridsearch' 中,在每个维度的值的数量。该值可以是正整数给出的值的数目为每个维,或适用于所有尺寸的标量的向量。此字段分类变量忽略。Ťd>
| 10 |
ShowPlots |
逻辑值,指示是否显示图。如果真正的 ,本场地块对迭代次数的最佳目标函数值。如果有一个或两个优化参数,如果优化 是'bayesopt' , 然后ShowPlots 并根据参数绘制目标函数的模型。Ťd>
| 真正的 |
SaveIntermediateResults |
逻辑值,指示是否保存结果时优化 是'bayesopt' 。如果真正的 ,该字段将重写一个名为“BayesoptResults” 在每次迭代。该变量是一个BayesianOptimization 对象。Ťd>
| 假 |
详细的 |
显示到命令行。
有关详细信息,请参阅 |
1 |
UseParallel |
逻辑值指示是否并行运行贝叶斯优化,这需要并行计算工具箱™。由于并行定时的nonreproducibility,平行贝叶斯优化不一定得到重复的结果。有关详细信息,请参阅平行的贝叶斯优化。Ťd> | 假 |
重新分割 |
逻辑值,指示是否在每次迭代时重新划分交叉验证。如果
|
假 |
使用不超过以下三个字段的名字之一。Ťd> | ||
CVPartition |
一个cvpartition 对象,如通过创建cvpartition 。Ťd>
| 'Kfold',5 如果你不指定任何交叉验证领域Ťd>
|
坚持 |
在范围A的标量(0,1) 表示不渗透性分数。Ťd>
| |
Kfold |
一个大于1的整数。Ťd> |
例:“HyperparameterOptimizationOptions”、结构(MaxObjectiveEvaluations, 60)
数据类型:结构体
Mdl
- 训练有素的核回归模型RegressionKernel
模型对象|RegressionPartitionedKernel
交叉验证模型对象训练有素的核回归模型,返回为RegressionKernel
模型对象或RegressionPartitionedKernel
旨在模型对象。
如果你设置任何的名称 - 值对参数CrossVal
,CVPartition
,坚持
,KFold
,或忽略
, 然后Mdl
是RegressionPartitionedKernel
交叉验证模型。除此以外,Mdl
是RegressionKernel
模型。
以参考Mdl
,使用点记号。例如,输入Mdl.NumExpansionDimensions
在“命令”窗口中显示展开空间的维数。
不像其他的回归模型,并为经济的内存使用情况,一RegressionKernel
模型对象不存储训练数据或训练过程的细节(例如,融合历史)。
FitInfo
- 优化细节优化的细节,返回为结构阵列,其包括在该表中描述的字段。该字段包含最终值或名称 - 值对的参数规格。
领域Ťh> | 描述Ťh> |
---|---|
求解 |
目标函数最小化技术: |
LossFunction |
损失函数。任一均方误差(MSE)或ε不敏感的,这取决于线性回归模型的类型。看到学习者 。Ťd>
|
λ |
正则长期强度。看到λ 。Ťd>
|
BetaTolerance |
在直线系数相对宽容和偏项。看到BetaTolerance 。Ťd>
|
GradientTolerance |
绝对梯度容差。看到GradientTolerance 。Ťd>
|
ObjectiveValue |
目标函数优化时终止的价值。回归损失加上调整项组成的目标函数。Ťd> |
GradientMagnitude |
目标函数优化时终止的梯度向量的无穷范数。看到GradientTolerance 。Ťd>
|
RelativeChangeInBeta |
线性系数相对变化和优化时终止偏置项。看到BetaTolerance 。Ťd>
|
FitTime |
经过,挂钟时间(秒)需要以适应模型的数据。Ťd> |
历史 |
优化信息的历史。此字段还包括从训练的优化信息Mdl 。该字段为空([] )如果你指定'冗长',0 。有关详细信息,请参阅详细的 和算法。Ťd>
|
要访问字段,使用点符号。例如,为了访问目标函数值的向量对于每次迭代中,输入FitInfo.ObjectiveValue
在命令窗口中。
检查所提供的信息FitInfo
评估收敛是否令人满意。
HyperparameterOptimizationResults
- 超参数的交叉验证优化BayesianOptimization
对象|超参数和相关联的值的表超参数的交叉验证优化,返回为BayesianOptimization
对象或超参数和关联值的表。的值时,输出为非空'OptimizeHyperparameters'
不是“没有”
。输出值取决于优化
字段值'HyperparameterOptimizationOptions'
名称 - 值对参数:
的价值优化 领域Ťh>
| 的价值HyperparameterOptimizationResults |
---|---|
'bayesopt' (默认)Ťd>
| 类对象BayesianOptimization |
'gridsearch' 或'randomsearch' |
使用超参数的表,观察到的目标函数值(交叉验证损失),以及观测的秩从最低(最好)至最高(最差)Ťd> |
fitrkernel
不接受线性系数测试的初始条件(β)和偏差项(b)用于确定决策函数,
fitrkernel
不支持标准化和交叉万博1manbetx验证的选项。
fitrkernel
不接受表的输入。
随机功能扩展,如随机厨房水槽[1]和快餐[2],是一种计算有效的方式计划,核回归算法用于大数据的近似高斯内核。随机功能扩展为拥有大量的训练集,但也可以应用于装入内存较小的数据集大数据的应用程序更加实用。
核回归算法搜索偏离每个响应数据点的最优函数(ÿ一世)由值不大于ε - 裕度(ε)将预测数据映射到高维空间后。
充分使用线性模型一些回归问题不能被描述。在这种情况下,通过更换点积得到一个非线性回归模型X1X2“带有非线性核函数 ,其中X一世是一世个观测(行矢量),并φ(X一世)是映射的变换吗X一世到高维空间(称为“内核技巧”)。然而,评估G(X1,X2),革兰氏矩阵,对于每对观测的在计算上是为一个大的数据集昂贵(大ñ)。
随机特征展开方案找到一个随机变换,使其点积逼近高斯核。也就是说,
哪里Ť(X)地图X在 到一个高维空间( )。随机厨房水槽[1]方案采用随机变换
哪里
是一个示例,从吸入
和σ2是一个内核的规模。该方案要求Ø(米p)计算和存储。该快餐[2]方案引入了另一个随机的基础V代替ž利用阿达玛矩阵结合高斯尺度矩阵。这种随机基础将计算成本降低到Ø(米日志
p)并降低存储到Ø(米)。
可以指定值米和σ2, 使用NumExpansionDimensions
和KernelScale
的名称 - 值对参数fitrkernel
, 分别。
该fitrkernel
函数使用Fastfood方案进行随机特征扩展,并使用线性回归来训练高斯核回归模型。不像在fitrsvm
功能,需要的计算ñ-通过-ñ革兰氏矩阵,求解器中fitrkernel
只需要形成大小的矩阵ñ-通过-米,米通常远小于ñ大数据。
甲框约束是一个参数,其控制施加在观测的最大罚横亘的ε余量外(ε),并有助于防止过度拟合(正则化)。增加框约束会导致更长的训练时间。
框约束(C)和正则化项强度(λ)与…有关C= 1 /(λñ),其中ñ是观测值的数量。
fitrkernel
最小化使用受限存储器的Broyden-弗莱彻-戈德法布-Shanno无(LBFGS)解算器与脊部(正则目标函数大号2)正规化。找到用于训练的LBFGS求解器的类型,类型FitInfo.Solver
在命令窗口中。
“LBFGS快”
——LBFGS解算器。
'LBFGS-嵌段'
- LBFGS解算器逐块的策略。如果fitrkernel
需要比的值以上存储器BlockSize
持有变换预测数据,然后使用块明智的策略。
“LBFGS高的”
- LBFGS解算器具有用于高阵列逐块的策略。
什么时候fitrkernel
使用块明智的策略,fitrkernel
器具LBFGS通过分配在每一次迭代的数据的不同部分之间的损耗和梯度的计算。也,fitrkernel
提炼线性系数的初始估计,并通过局部地拟合模型数据的各部分,并通过平均的系数相结合的偏置项。如果您指定'冗长',1
, 然后fitrkernel
显示诊断信息对每个数据传递和存储在所述信息历史
现场FitInfo
。
什么时候fitrkernel
不使用块明智的策略,初步估计是零。如果您指定'冗长',1
, 然后fitrkernel
显示每个迭代的诊断信息,并将该信息存储在历史
现场FitInfo
。
[1]拉希米,A。,和B. Recht。“随机特征为大规模核机器。”在神经信息处理系统的进步。卷。20,2008年,第1177-1184。
[2]乐,Q.,T.Sarlós,和A.斯莫拉岛。“快餐 - 逼近核心展开的对数线性时间。”机器学习的第30届国际会议论文集。2013年第28卷第3期第244-252页
[3]黄,P.S。,H. Avron,T. N. Sainath,V. Sindhwani,和B. Ramabhadran。“核方法匹配TIMIT深层神经网络。”2014年IEEE声学、语音和信号处理国际会议。2014年,页205 - 209。
使用注意事项和限制:
一些名称-值对参数的默认值与内存中的默认值不同fitrkernel
功能。万博1manbetx支持的名称 - 值对参数,和任何差异,主要有:
'BoxConstraint'
“小量”
'NumExpansionDimensions'
'KernelScale'
“拉姆达”
“学习者”
“放牧”
- 默认值1
。
'BLOCKSIZE'
'RandomStream'
'ResponseTransform'
“权重”
- 值必须是一个高大的阵列。
'BetaTolerance'
-默认值是放松到1E-3
。
'GradientTolerance'
-默认值是放松到1E-5
。
'HessianHistorySize'
'IterationLimit'
-默认值是放松到20.
。
'OptimizeHyperparameters'
'HyperparameterOptimizationOptions'
- 对于交叉验证,高大优化只支持万博1manbetx“坚持”
验证。例如,您可以指定fitrkernel(X,Y, 'OptimizeHyperparameters', '自动', 'HyperparameterOptimizationOptions',结构( '不吸墨性',0.2))
。
如果'KernelScale'
是'汽车'
, 然后fitrkernel
使用由控制的随机流tallrng
对于二次抽样。对于重复性,必须设置一个随机数种子为全球流和控制的随机流都tallrng
。
如果“拉姆达”
是'汽车'
, 然后fitrkernel
可能需要额外的一个阶段,通过数据来计算的观测次数X
。
fitrkernel
使用块明智的策略。有关详细信息,请参阅算法。
欲了解更多信息,请参阅高大的数组(MATLAB)。
并行运行,设置'UseParallel'
选项真正的
。
执行并行超参数优化,使用'HyperparameterOptions',结构( 'UseParallel',真)
名称 - 值对的参数在调用此函数。
有关并行超参数优化的更多信息,请参见平行的贝叶斯优化。
有关并行计算更一般的信息,请参见运行MATLAB函数与自动并行支持万博1manbetx(并行计算工具箱)。
您点击了对应于以下MATLAB命令的链接:
在MATLAB命令窗口中输入它运行的命令。Web浏览器不支持MATLAB的命令。万博1manbetx
您也可以从以下列表中选择网站:
选择最佳的网站性能的中国网站(在中国或英文)。其他MathWorks的国家网站都没有从您的位置访问进行了优化。