このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
resume
ガウス カーネル回帰モデルの学習の再開
構文
説明
は、学習データ (UpdatedMdl
= resume(Mdl
,X
,Y
)X
内の予測子データと Y
内の応答データ) や特徴量拡張など、Mdl
の学習に使用したものと同じオプションを使用して、学習を続行します。学習は、Mdl
内の最新の推定パラメーターから始まります。この関数は、新しいガウス カーネル回帰モデル UpdatedMdl
を返します。
は、UpdatedMdl
= resume(Mdl
,Tbl
,ResponseVarName
)Tbl
内の予測子データと Tbl.ResponseVarName
内の真の応答を使用して学習を続行します。
は、table UpdatedMdl
= resume(Mdl
,Tbl
,Y
)Tbl
内の予測子データと Y
内の真の応答を使用して学習を続行します。
では、前の構文におけるいずれかの入力引数の組み合わせに加えて、1 つ以上の名前と値のペアの引数を使用してオプションを指定します。たとえば、収束の許容誤差や追加最適化反復の最大回数などの収束制御オプションを変更できます。UpdatedMdl
= resume(___,Name,Value
)
[
は、当てはめの情報も構造体配列 UpdatedMdl
,FitInfo
] = resume(___)FitInfo
に返します。
例
標本損失の推定と学習の再開
反復回数を増やしてガウス カーネル回帰モデルの学習を再開し、回帰損失を向上させます。
carbig
データ セットを読み込みます。
load carbig
予測子変数 (X
) と応答変数 (Y
) を指定します。
X = [Acceleration,Cylinders,Displacement,Horsepower,Weight]; Y = MPG;
配列 X
および Y
から、それぞれの配列で NaN
値が含まれている行を削除します。NaN
値が含まれている行を削除してからデータを fitrkernel
に渡すと、学習が高速化され、メモリ使用量が少なくなります。
R = rmmissing([X Y]); % Data with missing entries removed
X = R(:,1:5);
Y = R(:,end);
観測値の 10% をホールドアウト標本として予約します。学習インデックスとテスト インデックスを分割の定義から抽出します。
rng(10) % For reproducibility N = length(Y); cvp = cvpartition(N,'Holdout',0.1); idxTrn = training(cvp); % Training set indices idxTest = test(cvp); % Test set indices
カーネル回帰モデルに学習をさせます。学習データを標準化し、反復制限を 5 回に設定して、さらに 'Verbose',1
を指定し、診断情報を表示します。
Xtrain = X(idxTrn,:); Ytrain = Y(idxTrn); Mdl = fitrkernel(Xtrain,Ytrain,'Standardize',true, ... 'IterationLimit',5,'Verbose',1)
|=================================================================================================================| | Solver | Pass | Iteration | Objective | Step | Gradient | Relative | sum(beta~=0) | | | | | | | magnitude | change in Beta | | |=================================================================================================================| | LBFGS | 1 | 0 | 5.691016e+00 | 0.000000e+00 | 5.852758e-02 | | 0 | | LBFGS | 1 | 1 | 5.086537e+00 | 8.000000e+00 | 5.220869e-02 | 9.846711e-02 | 256 | | LBFGS | 1 | 2 | 3.862301e+00 | 5.000000e-01 | 3.796034e-01 | 5.998808e-01 | 256 | | LBFGS | 1 | 3 | 3.460613e+00 | 1.000000e+00 | 3.257790e-01 | 1.615091e-01 | 256 | | LBFGS | 1 | 4 | 3.136228e+00 | 1.000000e+00 | 2.832861e-02 | 8.006254e-02 | 256 | | LBFGS | 1 | 5 | 3.063978e+00 | 1.000000e+00 | 1.475038e-02 | 3.314455e-02 | 256 | |=================================================================================================================|
Mdl = RegressionKernel ResponseName: 'Y' Learner: 'svm' NumExpansionDimensions: 256 KernelScale: 1 Lambda: 0.0028 BoxConstraint: 1 Epsilon: 0.8617
Mdl
は RegressionKernel
モデルです。
テスト セットについてイプシロン不感応誤差を推定します。
Xtest = X(idxTest,:); Ytest = Y(idxTest); L = loss(Mdl,Xtest,Ytest,'LossFun','epsiloninsensitive')
L = 2.0674
resume
を使用して、モデルの学習を続行します。この関数は、Mdl
の学習に使用したものと同じ学習オプションによって学習を続行します。
UpdatedMdl = resume(Mdl,Xtrain,Ytrain);
|=================================================================================================================| | Solver | Pass | Iteration | Objective | Step | Gradient | Relative | sum(beta~=0) | | | | | | | magnitude | change in Beta | | |=================================================================================================================| | LBFGS | 1 | 0 | 3.063978e+00 | 0.000000e+00 | 1.475038e-02 | | 256 | | LBFGS | 1 | 1 | 3.007822e+00 | 8.000000e+00 | 1.391637e-02 | 2.603966e-02 | 256 | | LBFGS | 1 | 2 | 2.817171e+00 | 5.000000e-01 | 5.949008e-02 | 1.918084e-01 | 256 | | LBFGS | 1 | 3 | 2.807294e+00 | 2.500000e-01 | 6.798867e-02 | 2.973097e-02 | 256 | | LBFGS | 1 | 4 | 2.791060e+00 | 1.000000e+00 | 2.549575e-02 | 1.639328e-02 | 256 | | LBFGS | 1 | 5 | 2.767821e+00 | 1.000000e+00 | 6.154419e-03 | 2.468903e-02 | 256 | | LBFGS | 1 | 6 | 2.738163e+00 | 1.000000e+00 | 5.949008e-02 | 9.476263e-02 | 256 | | LBFGS | 1 | 7 | 2.719146e+00 | 1.000000e+00 | 1.699717e-02 | 1.849972e-02 | 256 | | LBFGS | 1 | 8 | 2.705941e+00 | 1.000000e+00 | 3.116147e-02 | 4.152590e-02 | 256 | | LBFGS | 1 | 9 | 2.701162e+00 | 1.000000e+00 | 5.665722e-03 | 9.401466e-03 | 256 | | LBFGS | 1 | 10 | 2.695341e+00 | 5.000000e-01 | 3.116147e-02 | 4.968046e-02 | 256 | | LBFGS | 1 | 11 | 2.691277e+00 | 1.000000e+00 | 8.498584e-03 | 1.017446e-02 | 256 | | LBFGS | 1 | 12 | 2.689972e+00 | 1.000000e+00 | 1.983003e-02 | 9.938921e-03 | 256 | | LBFGS | 1 | 13 | 2.688979e+00 | 1.000000e+00 | 1.416431e-02 | 6.606316e-03 | 256 | | LBFGS | 1 | 14 | 2.687787e+00 | 1.000000e+00 | 1.621956e-03 | 7.089542e-03 | 256 | | LBFGS | 1 | 15 | 2.686539e+00 | 1.000000e+00 | 1.699717e-02 | 1.169701e-02 | 256 | | LBFGS | 1 | 16 | 2.685356e+00 | 1.000000e+00 | 1.133144e-02 | 1.069310e-02 | 256 | | LBFGS | 1 | 17 | 2.685021e+00 | 5.000000e-01 | 1.133144e-02 | 2.104248e-02 | 256 | | LBFGS | 1 | 18 | 2.684002e+00 | 1.000000e+00 | 2.832861e-03 | 6.175231e-03 | 256 | | LBFGS | 1 | 19 | 2.683507e+00 | 1.000000e+00 | 5.665722e-03 | 3.724026e-03 | 256 | | LBFGS | 1 | 20 | 2.683343e+00 | 5.000000e-01 | 5.665722e-03 | 9.549119e-03 | 256 | |=================================================================================================================| | Solver | Pass | Iteration | Objective | Step | Gradient | Relative | sum(beta~=0) | | | | | | | magnitude | change in Beta | | |=================================================================================================================| | LBFGS | 1 | 21 | 2.682897e+00 | 1.000000e+00 | 5.665722e-03 | 7.172867e-03 | 256 | | LBFGS | 1 | 22 | 2.682682e+00 | 1.000000e+00 | 2.832861e-03 | 2.587726e-03 | 256 | | LBFGS | 1 | 23 | 2.682485e+00 | 1.000000e+00 | 2.832861e-03 | 2.953648e-03 | 256 | | LBFGS | 1 | 24 | 2.682326e+00 | 1.000000e+00 | 2.832861e-03 | 7.777294e-03 | 256 | | LBFGS | 1 | 25 | 2.681914e+00 | 1.000000e+00 | 2.832861e-03 | 2.778555e-03 | 256 | | LBFGS | 1 | 26 | 2.681867e+00 | 5.000000e-01 | 1.031085e-03 | 3.638352e-03 | 256 | | LBFGS | 1 | 27 | 2.681725e+00 | 1.000000e+00 | 5.665722e-03 | 1.515199e-03 | 256 | | LBFGS | 1 | 28 | 2.681692e+00 | 5.000000e-01 | 1.314940e-03 | 1.850055e-03 | 256 | | LBFGS | 1 | 29 | 2.681625e+00 | 1.000000e+00 | 2.832861e-03 | 1.456903e-03 | 256 | | LBFGS | 1 | 30 | 2.681594e+00 | 5.000000e-01 | 2.832861e-03 | 8.704875e-04 | 256 | | LBFGS | 1 | 31 | 2.681581e+00 | 5.000000e-01 | 8.498584e-03 | 3.934768e-04 | 256 | | LBFGS | 1 | 32 | 2.681579e+00 | 1.000000e+00 | 8.498584e-03 | 1.847866e-03 | 256 | | LBFGS | 1 | 33 | 2.681553e+00 | 1.000000e+00 | 9.857038e-04 | 6.509825e-04 | 256 | | LBFGS | 1 | 34 | 2.681541e+00 | 5.000000e-01 | 8.498584e-03 | 6.635528e-04 | 256 | | LBFGS | 1 | 35 | 2.681499e+00 | 1.000000e+00 | 5.665722e-03 | 6.194735e-04 | 256 | | LBFGS | 1 | 36 | 2.681493e+00 | 5.000000e-01 | 1.133144e-02 | 1.617763e-03 | 256 | | LBFGS | 1 | 37 | 2.681473e+00 | 1.000000e+00 | 9.869233e-04 | 8.418484e-04 | 256 | | LBFGS | 1 | 38 | 2.681469e+00 | 1.000000e+00 | 5.665722e-03 | 1.069722e-03 | 256 | | LBFGS | 1 | 39 | 2.681432e+00 | 1.000000e+00 | 2.832861e-03 | 8.501930e-04 | 256 | | LBFGS | 1 | 40 | 2.681423e+00 | 2.500000e-01 | 1.133144e-02 | 9.543716e-04 | 256 | |=================================================================================================================| | Solver | Pass | Iteration | Objective | Step | Gradient | Relative | sum(beta~=0) | | | | | | | magnitude | change in Beta | | |=================================================================================================================| | LBFGS | 1 | 41 | 2.681416e+00 | 1.000000e+00 | 2.832861e-03 | 8.763251e-04 | 256 | | LBFGS | 1 | 42 | 2.681413e+00 | 5.000000e-01 | 2.832861e-03 | 4.101888e-04 | 256 | | LBFGS | 1 | 43 | 2.681403e+00 | 1.000000e+00 | 5.665722e-03 | 2.713209e-04 | 256 | | LBFGS | 1 | 44 | 2.681392e+00 | 1.000000e+00 | 2.832861e-03 | 2.115241e-04 | 256 | | LBFGS | 1 | 45 | 2.681383e+00 | 1.000000e+00 | 2.832861e-03 | 2.872858e-04 | 256 | | LBFGS | 1 | 46 | 2.681374e+00 | 1.000000e+00 | 8.498584e-03 | 5.771001e-04 | 256 | | LBFGS | 1 | 47 | 2.681353e+00 | 1.000000e+00 | 2.832861e-03 | 3.160871e-04 | 256 | | LBFGS | 1 | 48 | 2.681334e+00 | 5.000000e-01 | 8.498584e-03 | 1.045502e-03 | 256 | | LBFGS | 1 | 49 | 2.681314e+00 | 1.000000e+00 | 7.878714e-04 | 1.505118e-03 | 256 | | LBFGS | 1 | 50 | 2.681306e+00 | 1.000000e+00 | 2.832861e-03 | 4.756894e-04 | 256 | | LBFGS | 1 | 51 | 2.681301e+00 | 1.000000e+00 | 1.133144e-02 | 3.664873e-04 | 256 | | LBFGS | 1 | 52 | 2.681288e+00 | 1.000000e+00 | 2.832861e-03 | 1.449821e-04 | 256 | | LBFGS | 1 | 53 | 2.681287e+00 | 2.500000e-01 | 1.699717e-02 | 2.357176e-04 | 256 | | LBFGS | 1 | 54 | 2.681282e+00 | 1.000000e+00 | 5.665722e-03 | 2.046663e-04 | 256 | | LBFGS | 1 | 55 | 2.681278e+00 | 1.000000e+00 | 2.832861e-03 | 2.546349e-04 | 256 | | LBFGS | 1 | 56 | 2.681276e+00 | 2.500000e-01 | 1.307940e-03 | 1.966786e-04 | 256 | | LBFGS | 1 | 57 | 2.681274e+00 | 5.000000e-01 | 1.416431e-02 | 1.005310e-04 | 256 | | LBFGS | 1 | 58 | 2.681271e+00 | 5.000000e-01 | 1.118892e-03 | 1.147324e-04 | 256 | | LBFGS | 1 | 59 | 2.681269e+00 | 1.000000e+00 | 2.832861e-03 | 1.332914e-04 | 256 | | LBFGS | 1 | 60 | 2.681268e+00 | 2.500000e-01 | 1.132045e-03 | 5.441369e-05 | 256 | |=================================================================================================================|
更新されたモデルを使用して、テスト セットについてイプシロン不感応誤差を推定します。
UpdatedL = loss(UpdatedMdl,Xtest,Ytest,'LossFun','epsiloninsensitive')
UpdatedL = 1.8933
反復回数を増やして resume
で回帰モデルを更新すると、約 0.08
倍だけ回帰誤差が減少します。
変更した収束制御学習オプションによる学習の再開
carbig
データ セットを読み込みます。
load carbig
予測子変数 (X
) と応答変数 (Y
) を指定します。
X = [Acceleration,Cylinders,Displacement,Horsepower,Weight]; Y = MPG;
配列 X
および Y
から、それぞれの配列で NaN
値が含まれている行を削除します。NaN
値が含まれている行を削除してからデータを fitrkernel
に渡すと、学習が高速化され、メモリ使用量が少なくなります。
R = rmmissing([X Y]); % Data with missing entries removed
X = R(:,1:5);
Y = R(:,end);
観測値の 10% をホールドアウト標本として予約します。学習インデックスとテスト インデックスを分割の定義から抽出します。
rng(10) % For reproducibility N = length(Y); cvp = cvpartition(N,'Holdout',0.1); idxTrn = training(cvp); % Training set indices idxTest = test(cvp); % Test set indices
名前と値の引数 'BetaTolerance'
および 'GradientTolerance'
を使用することにより、収束制御学習オプションを緩和してカーネル回帰モデルに学習させます。学習データを標準化し、'Verbose',1
を指定して診断情報を表示します。
Xtrain = X(idxTrn,:); Ytrain = Y(idxTrn); [Mdl,FitInfo] = fitrkernel(Xtrain,Ytrain,'Standardize',true,'Verbose',1, ... 'BetaTolerance',2e-2,'GradientTolerance',2e-2);
|=================================================================================================================| | Solver | Pass | Iteration | Objective | Step | Gradient | Relative | sum(beta~=0) | | | | | | | magnitude | change in Beta | | |=================================================================================================================| | LBFGS | 1 | 0 | 5.691016e+00 | 0.000000e+00 | 5.852758e-02 | | 0 | | LBFGS | 1 | 1 | 5.086537e+00 | 8.000000e+00 | 5.220869e-02 | 9.846711e-02 | 256 | | LBFGS | 1 | 2 | 3.862301e+00 | 5.000000e-01 | 3.796034e-01 | 5.998808e-01 | 256 | | LBFGS | 1 | 3 | 3.460613e+00 | 1.000000e+00 | 3.257790e-01 | 1.615091e-01 | 256 | | LBFGS | 1 | 4 | 3.136228e+00 | 1.000000e+00 | 2.832861e-02 | 8.006254e-02 | 256 | | LBFGS | 1 | 5 | 3.063978e+00 | 1.000000e+00 | 1.475038e-02 | 3.314455e-02 | 256 | |=================================================================================================================|
Mdl
は RegressionKernel
モデルです。
テスト セットについてイプシロン不感応誤差を推定します。
Xtest = X(idxTest,:); Ytest = Y(idxTest); L = loss(Mdl,Xtest,Ytest,'LossFun','epsiloninsensitive')
L = 2.0674
resume
を使用して、修正した収束制御オプションでモデルの学習を続行します。
[UpdatedMdl,UpdatedFitInfo] = resume(Mdl,Xtrain,Ytrain, ... 'BetaTolerance',2e-3,'GradientTolerance',2e-3);
|=================================================================================================================| | Solver | Pass | Iteration | Objective | Step | Gradient | Relative | sum(beta~=0) | | | | | | | magnitude | change in Beta | | |=================================================================================================================| | LBFGS | 1 | 0 | 3.063978e+00 | 0.000000e+00 | 1.475038e-02 | | 256 | | LBFGS | 1 | 1 | 3.007822e+00 | 8.000000e+00 | 1.391637e-02 | 2.603966e-02 | 256 | | LBFGS | 1 | 2 | 2.817171e+00 | 5.000000e-01 | 5.949008e-02 | 1.918084e-01 | 256 | | LBFGS | 1 | 3 | 2.807294e+00 | 2.500000e-01 | 6.798867e-02 | 2.973097e-02 | 256 | | LBFGS | 1 | 4 | 2.791060e+00 | 1.000000e+00 | 2.549575e-02 | 1.639328e-02 | 256 | | LBFGS | 1 | 5 | 2.767821e+00 | 1.000000e+00 | 6.154419e-03 | 2.468903e-02 | 256 | | LBFGS | 1 | 6 | 2.738163e+00 | 1.000000e+00 | 5.949008e-02 | 9.476263e-02 | 256 | | LBFGS | 1 | 7 | 2.719146e+00 | 1.000000e+00 | 1.699717e-02 | 1.849972e-02 | 256 | | LBFGS | 1 | 8 | 2.705941e+00 | 1.000000e+00 | 3.116147e-02 | 4.152590e-02 | 256 | | LBFGS | 1 | 9 | 2.701162e+00 | 1.000000e+00 | 5.665722e-03 | 9.401466e-03 | 256 | | LBFGS | 1 | 10 | 2.695341e+00 | 5.000000e-01 | 3.116147e-02 | 4.968046e-02 | 256 | | LBFGS | 1 | 11 | 2.691277e+00 | 1.000000e+00 | 8.498584e-03 | 1.017446e-02 | 256 | | LBFGS | 1 | 12 | 2.689972e+00 | 1.000000e+00 | 1.983003e-02 | 9.938921e-03 | 256 | | LBFGS | 1 | 13 | 2.688979e+00 | 1.000000e+00 | 1.416431e-02 | 6.606316e-03 | 256 | | LBFGS | 1 | 14 | 2.687787e+00 | 1.000000e+00 | 1.621956e-03 | 7.089542e-03 | 256 | |=================================================================================================================|
更新されたモデルを使用して、テスト セットについてイプシロン不感応誤差を推定します。
UpdatedL = loss(UpdatedMdl,Xtest,Ytest,'LossFun','epsiloninsensitive')
UpdatedL = 1.8891
収束の許容誤差を小さくして resume
で回帰モデルを更新すると、回帰誤差が減少します。
出力 FitInfo
および UpdatedFitInfo
を表示します。
FitInfo
FitInfo = struct with fields:
Solver: 'LBFGS-fast'
LossFunction: 'epsiloninsensitive'
Lambda: 0.0028
BetaTolerance: 0.0200
GradientTolerance: 0.0200
ObjectiveValue: 3.0640
GradientMagnitude: 0.0148
RelativeChangeInBeta: 0.0331
FitTime: 0.1785
History: [1x1 struct]
UpdatedFitInfo
UpdatedFitInfo = struct with fields:
Solver: 'LBFGS-fast'
LossFunction: 'epsiloninsensitive'
Lambda: 0.0028
BetaTolerance: 0.0020
GradientTolerance: 0.0020
ObjectiveValue: 2.6878
GradientMagnitude: 0.0016
RelativeChangeInBeta: 0.0071
FitTime: 0.1146
History: [1x1 struct]
勾配の絶対許容誤差が満たされたので、どちらの学習も終了しています。
UpdatedFitInfo.History.GradientMagnitude
を使用して、勾配の大きさと反復回数をプロットします。UpdatedFitInfo
の History
フィールドには FitInfo
の History
フィールドの情報が格納されていることに注意してください。
semilogy(UpdatedFitInfo.History.GradientMagnitude,'o-') ax = gca; ax.XTick = 1:21; ax.XTickLabel = UpdatedFitInfo.History.IterationNumber; grid on xlabel('Number of Iterations') ylabel('Gradient Magnitude')
1 回目の学習は、勾配の大きさが 2e-2
より小さくなったので、5 回の反復後に終了しています。2 回目の学習は、勾配の大きさが 2e-3
より小さくなったので、14 回の反復後に終了しています。
入力引数
Mdl
— カーネル回帰モデル
RegressionKernel
モデル オブジェクト
カーネル回帰モデル。RegressionKernel
モデル オブジェクトを指定します。RegressionKernel
モデル オブジェクトは、fitrkernel
を使用して作成できます。
X
— Mdl
の学習に使用した予測子データ
n 行 p 列の数値行列
Mdl
の学習に使用した予測子データ。n 行 p 列の数値行列を指定します。n は観測値の個数、p は予測子の個数です。
データ型: single
| double
Y
— Mdl
の学習に使用した応答データ
数値ベクトル
Mdl
の学習に使用した応答データ。数値ベクトルを指定します。
データ型: double
| single
Tbl
— Mdl
の学習に使用した標本データ
テーブル
Mdl
の学習に使用した標本データ標本データ。テーブルとして指定します。Tbl
の各行は 1 つの観測値に、各列は 1 つの予測子変数に対応します。必要に応じて、応答変数用および観測値の重み用の追加列を Tbl
に含めることができます。Tbl
には、Mdl
を学習させるために使用したすべての予測子が含まれていなければなりません。文字ベクトルの cell 配列ではない cell 配列と複数列の変数は使用できません。
テーブルに格納されている標本データを使用して Mdl
に学習をさせた場合、resume
の入力データもテーブルに含まれていなければなりません。
メモ
resume
は、Mdl
の学習に使用したものと同じ学習データと観測値の重み (Weights
) のみに対して実行する必要があります。関数 resume
は、特徴量拡張など、Mdl
の学習に使用したものと同じ学習オプションを使用します。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みます。
例: UpdatedMdl = resume(Mdl,X,Y,'BetaTolerance',1e-3)
は、線形係数およびバイアス項に対する相対許容誤差を除き、Mdl
の学習に使用したものと同じ学習オプションを使用して学習を再開します。
Weights
— Mdl
の学習に使用した観測値の重み
数値ベクトル | Tbl
内の変数の名前
Mdl
の学習に使用した観測値の重み。'Weights'
と数値ベクトル、または Tbl
に含まれる変数の名前で構成されるコンマ区切りのペアとして指定します。
Weights
が数値ベクトルである場合、Weights
のサイズはX
またはTbl
の行数と等しくなければなりません。Weights
がTbl
内の変数名である場合、Weights
を文字ベクトルまたは string スカラーとして指定しなければなりません。たとえば、重みがTbl.W
として格納されている場合、Weights
として'W'
を指定します。それ以外の場合、Tbl
の列はTbl.W
を含めてすべて予測子として扱われます。
観測値の重みを指定した場合、resume
は合計が 1 になるように Weights
を正規化します。
データ型: double
| single
| char
| string
BetaTolerance
— 線形係数およびバイアス項の相対許容誤差
Mdl
の学習に使用した BetaTolerance
の値 (既定値) | 非負のスカラー
線形係数およびバイアス項 (切片) の相対許容誤差。非負のスカラーとして指定します。
であるとします。これは、最適化反復 t における係数およびバイアス項のベクトルです。 で最適化が終了します。
GradientTolerance
も指定した場合、いずれかの終了条件が満たされると最適化が終了します。
既定では、Mdl
の学習に使用した BetaTolerance
の値と同じ値になります。
例: 'BetaTolerance',1e-6
データ型: single
| double
GradientTolerance
— 勾配の絶対許容誤差
Mdl
の学習に使用した GradientTolerance
の値 (既定値) | 非負のスカラー
勾配の絶対許容誤差。非負のスカラーとして指定します。
最適化反復 t における係数およびバイアス項に関する目的関数の勾配ベクトルを とします。 で最適化が終了します。
BetaTolerance
も指定した場合、いずれかの終了条件が満たされると最適化が終了します。
既定では、Mdl
の学習に使用した GradientTolerance
の値と同じ値になります。
例: 'GradientTolerance',1e-5
データ型: single
| double
IterationLimit
— 追加最適化反復の最大回数
正の整数
追加最適化反復の最大回数。'IterationLimit'
と正の整数から構成されるコンマ区切りのペアとして指定します。
fitrkernel
で Mdl
に学習をさせるときに名前と値のペアの引数 'BlockSize'
を使用して指定したメモリ (Mdl.ModelParameters.BlockSize
) に変換後のデータが収まる場合、既定値は 1000 です。それ以外の場合、既定値は 100 です。
既定値は Mdl
の学習に使用した値ではないことに注意してください。
例: 'IterationLimit',500
データ型: single
| double
出力引数
UpdatedMdl
— 更新されたカーネル回帰モデル
RegressionKernel
モデル オブジェクト
更新されたカーネル回帰モデル。RegressionKernel
モデル オブジェクトとして返されます。
FitInfo
— 最適化の詳細
構造体配列
最適化の詳細。次の表に記載されているフィールドを含む構造体配列として返されます。これらのフィールドには、最終的な値または名前と値のペアの引数の指定が格納されます。
フィールド | 説明 |
---|---|
Solver | 目的関数の最小化手法: |
LossFunction | 損失関数。線形回帰モデルのタイプに応じて、平均二乗誤差 (MSE) またはイプシロン不感応になります。fitrkernel の Learner を参照してください。 |
Lambda | 正則化項の強度。fitrkernel の Lambda を参照してください。 |
BetaTolerance | 線形係数およびバイアス項の相対許容誤差。BetaTolerance を参照してください。 |
GradientTolerance | 勾配の絶対許容誤差。GradientTolerance を参照してください。 |
ObjectiveValue | 最適化終了時の目的関数の値。回帰損失と正則化項を加算することにより目的関数が構成されます。 |
GradientMagnitude | 最適化終了時における目的関数の勾配ベクトルの無限大ノルム。GradientTolerance を参照してください。 |
RelativeChangeInBeta | 最適化終了時の線形係数およびバイアス項の相対的な変化。BetaTolerance を参照してください。 |
FitTime | モデルをデータに当てはめるためにかかった経過実時間 (秒単位)。 |
History | 最適化情報の履歴。このフィールドには Mdl の学習の最適化情報も格納されます。Mdl に学習をさせるときに 'Verbose',0 を指定した場合、このフィールドは空 ([] ) になります。詳細については、Verbose と fitrkernel のアルゴリズムの節を参照してください。 |
フィールドにアクセスするには、ドット表記を使用します。たとえば、各反復における目的関数値のベクトルにアクセスするには、コマンド ウィンドウで FitInfo.ObjectiveValue
と入力します。
FitInfo
が提供する情報を確認して、収束が満足できるものであるかどうかを評価します。
詳細
ランダムな特徴量拡張
Random Kitchen Sink[1]や Fastfood[2]などのランダムな特徴量拡張は、ビッグ データに対するカーネル回帰アルゴリズムのガウス カーネルを計算効率が高い方法で近似する手法です。ランダムな特徴量拡張は、大規模な学習セットが含まれているビッグ データ事例に対する方が現実的ですが、メモリに収まる小規模なデータ セットにも適用できます。
カーネル回帰アルゴリズムでは、予測子データを高次元空間にマッピングした後で、各応答データ点 (yi) からの逸脱がイプシロン マージン (ε) の値を超えない最適な関数を求めます。
一部の回帰問題は、線形モデルを使用して適切に表すことはできません。このような場合は、ドット積 x1x2′ を非線形カーネル関数 に置き換えることにより非線形回帰モデルを取得します。ここで、xi は i 番目の観測値 (行ベクトル)、φ(xi) は xi を高次元空間にマッピングする変換 ("カーネル トリック" と呼ばれます) です。しかし、(n が大きい) 大規模なデータ セットでは、観測値の各ペアについて G(x1,x2) (グラム行列) を評価すると計算コストが高くなります。
ランダムな特徴量拡張の方式では、ドット積がガウス カーネルを近似するようなランダム変換を求めます。つまり、次のようになります。
ここで、T(x) は における x を高次元空間 () にマッピングします。Random Kitchen Sink[1]方式では、次のランダムな変換を使用します。
ここで、 は から抽出した標本、σ はカーネル スケールです。この方式では O(mp) の計算および格納が必要です。Fastfood[2]方式では、ガウス スケーリング行列と組み合わせたアダマール行列を使用して、Z の代わりに別のランダムな基底 V を導入します。このランダムな基底により、計算コストが O(mlog
p) に、ストレージが O(m) に削減されます。
m および σ の値はそれぞれ、fitrkernel
の名前と値のペアの引数 NumExpansionDimensions
および KernelScale
を使用して指定できます。
関数 fitrkernel
は、ランダムな特徴量拡張に Fastfood 方式を使用し、線形回帰を使用してガウス カーネル回帰モデルに学習をさせます。関数 fitrsvm
のソルバーでは n 行 n 列のグラム行列の計算が必要ですが、fitrkernel
のソルバーに必要なのは、n 行 m 列の行列の形成だけです。ビッグ データの場合は一般に m が n よりはるかに小さくなります。
拡張機能
バージョン履歴
R2018a で導入
参考
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)