主要内容

このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

fitrlinear

高次元デ,タに対する線形回帰モデルのあてはめ

説明

fitrlinearは,高次元の非スパ,スまたはスパ,ス予測子デ,タを使用して効率的に線形回帰モデルに学習をさせます。使用可能な線形回帰モデルには,正則化されたサポートベクターマシン(SVM)と最小二乗回帰法があります。fitrlinearは,計算時間を短縮する手法(確率的勾配降下法など)を使用して目的関数を最小化します。

多数の予測子変数が含まれている高次元デ,タセットに対する計算時間を短縮するには,fitrlinearを使用して線形回帰モデルに学習をさせます。低~中次元の予測子デタセットにいては,低次元デ,タの代替方法を参照してください。

Mdl= fitrlinear (XYは,サポ,トベクタ,マシン回帰モデルを予測子Xおよび応答Yにあてはめた結果が格納されている,学習済みの回帰モデルオブジェクトMdlを返します。

Mdl= fitrlinear (资源描述ResponseVarNameは,テ,ブル资源描述内の予測子変数と资源描述。ResponseVarName内の応答値を使用して,線形回帰モデルを返します。

Mdl= fitrlinear (资源描述公式は,テ,ブル资源描述内の標本デ,タを使用して,線形回帰モデルを返します。入力引数公式は,Mdlをあてはめるために使用する资源描述内の予測子変数の応答およびサブセットの説明モデルです。

Mdl= fitrlinear (资源描述Yは,テ,ブル资源描述内の予測子変数とベクトルY内の応答値を使用して,線形回帰モデルを返します。

Mdl= fitrlinear (XY名称,值では,前の構文におけるいずれかの入力引数の組み合わせに加えて,1つ以上の名前と値のペアの引数を使用してオプションを指定します。たとえば,交差検証の指定,最小二乗回帰の実装,正則化のタ目录プの指定が可能です。名前と値のペアの引数“Kfold”を使用して交差検証を行うことをお勧めします。交差検証の結果により,モデルがどの程度一般化を行うかを判断します。

MdlFitInfo= fitrlinear(___は,前の構文のいずれかを使用して,最適化の詳細も返します。交差検証済みモデルにいてFitInfoを要求することはできません。

MdlFitInfoHyperparameterOptimizationResults= fitrlinear(___は,名前と値のペアOptimizeHyperparameters

すべて折りたたむ

Svm,双対SGDおよびリッジ正則化を使用して線形回帰モデルに学習をさせます。

次のモデルにより,10000個の観測値をシミュレ,トします。

y x 1 0 0 + 2 x 2 0 0 + e

  • X x 1 x 1 0 0 0 は,10%の要素が非ゼロ標準正規である10000行1000列のスパ,ス行列です。

  • eは,平均が0,標準偏差が0.3のランダムな正規誤差です。

rng (1)%用于再现性N = 1e4;D = 1e3;Nz = 0.1;X = sprandn(n,d,nz);Y = X(:,100) + 2*X(:,200) + 0.3*randn(n,1);

線形回帰モデルに学習をさせます。既定の設定では,fitrlinearはリッジペナルティがあるサポートベクターマシンを使用し,SVM用の双対SGDを使用して最適化を行います。近似の要約を抽出して,最適化アルゴリズムによるモデルがどの程度デ,タにあてはまるかを判断します。

[Mdl,FitInfo] = fitrlinear(X,Y)
Mdl = RegressionLinear ResponseName: 'Y' ResponseTransform: 'none' Beta: [1000x1 double]偏差:-0.0056 Lambda: 1.0000 -04学习者:'svm'属性,方法
FitInfo =带字段的结构:Lambda: 1.0000e-04目标:0.2725 PassLimit: 10 NumPasses: 10 BatchLimit: [] NumIterations: 100000 GradientNorm: NaN GradientTolerance: 0 RelativeChangeInBeta: 0.4907 BetaTolerance: 1.0000e-04 DeltaGradient: 1.5816 DeltaGradientTolerance: 0.1000 TerminationCode: 0 TerminationStatus:{'迭代限制超过。'} Alpha: [10000x1 double]历史记录:[]FitTime: 0.0517求解器:{'dual'}

MdlRegressionLinearモデルです。Mdlと学習デ,タまたは新しいデ,タを损失に渡して,標本内二乗平均誤差を調べることができます。または,Mdlと新しい予測子デ,タを预测に渡して,新しい観測値の応答を予測することができます。

FitInfoは,重要な情報として終了ステ,タス(TerminationStatus)とソルバ、によるモデルのデ、タへのあてはめにかかった時間(FitTime)が含まれている構造体配列です。FitInfoを使用して,最適化終了時の結果が満足できるものであるかどうかを判断することをお勧めします。この場合,fitrlinearは最大反復回数に達しました。モデルに再学習をさせることもできますが,学習時間は短いので,デ,タを通す回数を増やしてください。または,lbfgsなど別のソルバ,を試してください。

最小二乗を使用する線形回帰モデルに適した套索ペナルティの強度を決定するため,5分割の交差検証を実装します。

次のモデルにより,10000個の観測値をシミュレ,トします。

y x 1 0 0 + 2 x 2 0 0 + e

  • X x 1 x 1 0 0 0 は,10%の要素が非ゼロ標準正規である10000行1000列のスパ,ス行列です。

  • eは,平均が0,標準偏差が0.3のランダムな正規誤差です。

rng (1)%用于再现性N = 1e4;D = 1e3;Nz = 0.1;X = sprandn(n,d,nz);Y = X(:,100) + 2*X(:,200) + 0.3*randn(n,1);

1 0 - 5 1 0 - 1 の範囲で対数間隔で配置された15個の正則化強度を作成します。

Lambda = logspace(-5,-1,15);

モデルを交差検証します。実行速度を向上させるため,予測子デ,タを転置し,観測値が列単位であることを指定します。SpaRSAを使用して目的関数を最適化します。

X = X';CVMdl = fitrlinear(X,Y,“ObservationsIn”“列”“KFold”5,“λ”λ,...“学习者”“leastsquares”“规划求解”“sparsa”“正规化”“套索”);numCLModels = nummel (CVMdl.Trained)
numCLModels = 5

CVMdlRegressionPartitionedLinearモデルです。fitrlinearは5分割の交差検証を実装するので,各分割にいて学習させる5のRegressionLinearモデルがCVMdlに格納されます。

1番目の学習済み線形回帰モデルを表示します。

Mdl1 = CVMdl。训练有素的{1}
Mdl1 = RegressionLinear ResponseName: 'Y' ResponseTransform: 'none' Beta: [1000x15 double]偏差:[1x15 double] Lambda: [1x15 double]学习者:'最小二乘'属性,方法

Mdl1RegressionLinearモデルオブジェクトです。fitrlinearは最初の4の分割に対して学習を行うことによりMdl1を構築しました。λは正則化強度のシ,ケンスなので,Mdl1はそれぞれがλの各正則化強度に対応する15個のモデルであると考えることができます。

交差検証されたmseを推定します。

mse = kfoldLoss(CVMdl);

λの値が大きくなると,予測子変数がスパ,スになります。これは回帰モデルの品質として優れています。データセット全体を使用し,モデルの交差検証を行ったときと同じオプションを指定して,各正則化強度について線形回帰モデルに学習をさせます。モデルごとに非ゼロの係数を特定します。

Mdl = fitrlinear(X,Y,“ObservationsIn”“列”“λ”λ,...“学习者”“leastsquares”“规划求解”“sparsa”“正规化”“套索”);numNZCoeff = sum(Mdl.Beta~=0);

同じ図に,各正則化強度にいての交差検証されたmseと非ゼロ係数の頻度をプロットします。すべての変数を対数スケ,ルでプロットします。

figure [h,hL1,hL2] = plotyy(log10(Lambda),log10(mse),...log10(λ)log10 (numNZCoeff));hL1。标志=“o”;hL2。标志=“o”;ylabel (h (1),“log_ {10} MSE的) ylabel (h (2),'log_{10}非零系数频率')包含(“log_{10}λ的)举行

图包含2个轴。Axes 1包含一个line类型的对象。axis2包含一个line类型的对象。

予測子変数のスパ,ス性とmseの低さのバランスがとれている正則化強度(λ(10)など)の选区ンデックスを選択します。

idxFinal = 10;

最小のmseに対応するモデルを抽出します。

MdlFinal = selectModels(Mdl,idxFinal)
MdlFinal = RegressionLinear ResponseName: 'Y' ResponseTransform: 'none' Beta: [1000x1 double]偏差:-0.0050 Lambda: 0.0037学习者:'最小二乘'属性,方法
idxNZCoeff = find(MdlFinal.Beta~=0)
idxNZCoeff =2×1100 200
EstCoeff = Mdl.Beta(idxNZCoeff)
EstCoeff =2×11.0051 - 1.9965

MdlFinalは,1の正則化強度があるRegressionLinearモデルです。非ゼロ係数EstCoeffは,デ,タをシミュレ,トした係数に近くなっています。

この例では,fitrlinearを使用して自動的にハパパラメタを最適化する方法を示します。この例では,人為的な (シミュレートされた) データをモデルに対して使用します。

y x 1 0 0 + 2 x 2 0 0 + e

  • X x 1 x 1 0 0 0 は,10%の要素が非ゼロ標準正規である10000行1000列のスパ,ス行列です。

  • eは,平均が0,標準偏差が0.3のランダムな正規誤差です。

rng (1)%用于再现性N = 1e4;D = 1e3;Nz = 0.1;X = sprandn(n,d,nz);Y = X(:,100) + 2*X(:,200) + 0.3*randn(n,1);

自動的なハイパーパラメーター最適化を使用して,5分割交差検証損失を最小化するハイパーパラメーターを求めます。

再現性を得るために,“expected-improvement-plus”の獲得関数を使用します。

Hyperopts = struct(“AcquisitionFunctionName”“expected-improvement-plus”);[Mdl,FitInfo,HyperparameterOptimizationResults] = fitrlinear(X,Y,...“OptimizeHyperparameters”“汽车”...“HyperparameterOptimizationOptions”hyperopts)
|=====================================================================================================| | Iter | Eval |目的:| |目的BestSoFar | BestSoFar |λ|学生| | | |结果日志(1 +损失)运行时| | | (estim(观察) .) | | | |=====================================================================================================| | 最好1 | | 0.16029 | 0.83483 | 0.16029 | 0.16029 | 2.4206 e-09 |支持向量机| | 2 |最好| 0.14496 | 0.47693 | 0.14496 | 0.14601 | 0.001807 |支持向量机| | 3 |最好| 0.13879 | 0.59537 | 0.13879 | 0.14065 | 2.4681 e-09 | leastsquares | | 4 |的| 0.115 | 0.54148 | 0.115 | 0.11501 |0.021027 | leastsquares | | 5 |接受| 0.44352 | 0.54142 | 0.115 | 0.1159 | 4.6795 | leastsquares | | 6 |的| 0.11025 | 0.44286 | 0.11025 | 0.11024 | 0.010671 | leastsquares | | | 7日接受| 0.13222 | 0.43637 | 0.11025 | 0.11024 | 8.6067 e-08 | leastsquares | | |接受8 | 0.13262 | 0.46487 | 0.11025 | 0.11023 | 8.5109 e-05 | leastsquares | | | 9日接受| 0.13543 | 0.5577 | 0.11025 | 0.11021 | 2.7562 e-06 | leastsquares | | |接受10 | 0.15751 | 0.53195 | 0.11025 | 0.11022 | 5.0559 e-06 |支持向量机| | | 11日接受| 0.40673 | 0.48061 | 0.11025 | 0.1102 | 0.52074 |支持向量机| | | 12日接受| 0.16057 | 0.55048 | 0.11025 | 0.1102 | 0.00014292 |支持向量机| | | 13日接受| 0.16105 | 0.55149 | 0.11025 | 0.11018 | 1.0079 e-07 |支持向量机| | | 14日接受| 0.12763 | 0.52878 | 0.11025 | 0.11019 | 0.0012085 | leastsquares | | |接受15 | 0.13504 | 0.42037 | 0.11025 | 0.11019 | 1.3981 e-08 | leastsquares | | | 16日接受| 0.11041 | 0.49715 | 0.11025 | 0.11026 | 0.0093968 | leastsquares | | 17 | | 0.10954 |最好0.43449 | 0.10954 | 0.11003 | 0.010393 | leastsquares | | | 18日接受| 0.10998 | 0.43781 | 0.10954 | 0.11002 | 0.010254 | leastsquares | | | 19日接受| 0.45314 | 0.47974 | 0.10954 | 0.11001 | 9.9966 |支持向量机| |最好20 | | 0.10753 | 0.61938 | 0.10753 | 0.10759 | 0.022576 |支持向量机  | |=====================================================================================================| | Iter | Eval |目的:| |目的BestSoFar | BestSoFar |λ|学生| | | |结果日志(1 +损失)运行时| | | (estim(观察) .) | | | |=====================================================================================================| | 21最好| | 0.10737 | 0.74098 | 0.10737 | 0.10728 | 0.010171 |支持向量机| | | 22日接受| 0.13448 | 0.47114 | 0.10737 | 0.10727 | 1.5344 e-05 | leastsquares | | 23最好| | 0.10645 | 0.45866 | 0.10645 | 0.10565 | 0.015495 |支持向量机| | | 24日接受| 0.13598 | 0.43547 | 0.10645 |0.10559 | 4.5984 e-07 | leastsquares | | | 25日接受| 0.15962 | 0.53097 | 0.10645 | 0.10556 | 1.4302 e-08 |支持向量机| | | 26日接受| 0.10689 | 0.51299 | 0.10645 | 0.10616 | 0.015391 |支持向量机| | | 27日接受| 0.13748 | 0.535 | 0.10645 | 0.10614 | 1.001 e-09 | leastsquares | | | 28日接受| 0.10692 | 0.65116 | 0.10645 | 0.10639 | 0.015761 |支持向量机| | | 29日接受| 0.10681 | 0.53702 | 0.10645 | 0.10649 | 0.015777 |支持向量机| | | 30日接受| 0.34314 | 0.5265 | 0.10645 | 0.10651 | 0.39671 | leastsquares |

图中包含一个轴。标题为Min目标vs.函数计算数量的轴包含2个类型为line的对象。这些对象代表最小观测目标,估计最小目标。

图中包含一个轴。目标函数模型的轴包含直线、曲面、轮廓等5个对象。这些对象代表观测点,模型均值,下一个点,模型最小可行。

__________________________________________________________ 优化完成。最大目标达到30个。总函数评估:30总运行时间:59.9474秒总目标函数评估时间:15.824最佳观测可行点:Lambda Learner ________ _______ 0.015495 svm观测目标函数值= 0.10645估计目标函数值= 0.10651函数评估时间= 0.45866最佳估计可行点(根据模型):Lambda Learner ________ _______ 0.015777 svm估计目标函数值= 0.10651估计函数评估时间= 0.54637
Mdl = RegressionLinear ResponseName: 'Y' ResponseTransform: 'none' Beta: [1000x1 double]偏差:-0.0018 Lambda: 0.0158学习者:'svm'属性,方法
FitInfo =带字段的结构:Lambda: 0.0158目标:0.2309 PassLimit: 10 NumPasses: 10 BatchLimit: [] NumIterations: 99989 GradientNorm: NaN GradientTolerance: 0 RelativeChangeInBeta: 0.0641 BetaTolerance: 1.0000e-04 DeltaGradient: 1.1697 DeltaGradientTolerance: 0.1000 TerminationCode: 0 TerminationStatus:{'迭代限制超过。'} Alpha: [10000x1 double]历史记录:[]FitTime: 0.0940解算器:{'dual'}
HyperparameterOptimizationResults = BayesianOptimization with properties: ObjectiveFcn: @createObjFcn/inMemoryObjFcn variabledescription: [3x1 optimizableVariable] Options: [1x1 struct] MinObjective: 0.1065 XAtMinObjective: [1x2 table] minestimatedobjobjective: 0.1065 xatminestimatedobjobjective: [1x2 table] numobjectiveevalues: 30 TotalElapsedTime: 59.9474 NextPoint: [1x2 table] XTrace: [30x2 table] ObjectiveTrace: [30x1 double] ConstraintsTrace: [] UserDataTrace:{30x1 cell} ObjectiveEvaluationTimeTrace: [30x1 double] IterationTimeTrace: [30x1 double] ErrorTrace: [30x1 double]可行性trace: [30x1 logical]可行性probabilitytrace: [30x1 double] IndexOfMinimumTrace: [30x1 double] objectivminimumtrace: [30x1 double] estimatedobjectivminimumtrace: [30x1 double]

この最適化手法は交差検証の使用による適切な套索ペナルティの特定で示されているものよりシンプルですが,モデルの複雑度と交差検証損失との間のトレードオフはできません。

入力引数

すべて折りたたむ

予測子デ,タ。n行 p 列の非スパース行列またはスパース行列を指定します。

Yの長さとXの観測値数は同じでなければなりません。

メモ

観測値が列に対応するように予測子行列を配置して“ObservationsIn”、“列”を指定すると,最適化実行時間が大幅に短縮される可能性があります。

デ,タ型:|

応答デ,タ。n次元の数値ベクトルを指定します。Yの長さはXまたは资源描述の観測値の数と等しくなければなりません。

デ,タ型:|

モデルを学習させるために使用する標本デ,タ。テ,ブルとして指定します。资源描述の各行は1の観測値に,各列は1。オプションとして,资源描述に応答変数用の列を1追加できます。文字ベクトルのcell配列ではない cell 配列と複数列の変数は使用できません。

  • 资源描述に応答変数が含まれている場合に资源描述内の他の変数をすべて予測子として使用するには,ResponseVarNameを使用して応答変数を指定します。

  • 资源描述に応答変数が含まれている場合に资源描述内の他の変数の一部のみを予測子として使用するには,公式を使用して式を指定します。

  • 资源描述に応答変数が含まれていない場合は,Yを使用して応答変数を指定します。応答変数の長さと资源描述の行数は等しくなければなりません。

デ,タ型:表格

応答変数の名前。资源描述内の変数の名前で指定します。応答変数は,数値ベクトルでなければなりません。

ResponseVarNameには文字ベクトルまたは字符串スカラ,を指定しなければなりません。たとえば,応答変数Y资源描述资源描述。Yとして格納されている場合,“Y”を指定します。それ以外の場合,モデルを学習させるときに,资源描述の列はYを含めてすべて予測子として扱われます。

デ,タ型:字符|字符串

応答変数および予測子変数サブセットの説明モデル。“Y ~ x1 + x2 + x3”という形式の文字ベクトルまたは字符串スカラ,を指定します。この形式では,Yは応答変数を,x1x2およびx3は予測子変数を表します。

モデルに学習をさせるための予測子として资源描述内の変数のサブセットを指定するには,式を使用します。式を指定した場合,公式に現れない资源描述内の変数は使用されません。

式の変数名は资源描述の変数名(Tbl.Properties.VariableNames)であり,有効なmatlab®識別子でなければなりません。関数isvarnameを使用して资源描述の変数名を検証できます。変数名が有効でない場合,関数matlab.lang.makeValidNameを使用してそれらを変換できます。

デ,タ型:字符|字符串

メモ:

ソフトウェアは,,空の文字ベクトル(),空のstring ("")、< >失踪,および<定义>の要素を欠損値として扱い,以下のいずれかの特性をも観測値を削除します。

  • 応答の欠損値(たとえば,YまたはValidationData{2}

  • 予測子の観測値(たとえば,XまたはValidationData {1}の行)内の少なくとも1の欠損値

  • 値または重み0(たとえば,权重またはValidationData {3}内の値)

メモリを節約するため,学習を行う前に欠損値が含まれている観測値を学習データから手動で削除することをお勧めします。

名前と値のペアの引数

オプションの名称,值引数のコンマ区切りペアを指定します。的名字は引数名で,价值は対応する値です。的名字は引用符で囲まなければなりません。Name1, Value1,…,的家のように,複数の名前と値のペアの引数を,任意の順番で指定できます。

例:Mdl = fitrlinear(X,Y,'Learner','leastsquares','CrossVal','on','Regularization','lasso')は,最小二乗回帰の実装,10分割交差検証の実装,および套索正則化項を含めることを指定します。

メモ

交差検証の名前と値のペアの引数を名前と値のペアの引数“OptimizeHyperparameters”と同時に使用することはできません。“OptimizeHyperparameters”の場合の交差検証は,名前と値のペアの引数“HyperparameterOptimizationOptions”を使用することのみによって変更できます。

線形回帰のオプション

すべて折りたたむ

プシロン不感応区間の幅の半分。‘ε’と非負のスカラ,値から構成されるコンマ区切りのペアとして指定します。‘ε’は支持向量机学習器のみに適用されます。

εの既定値は,差(Y) / 13.49です。これは、応答変数Yの四分位数間範囲を使用した標準偏差の推定値です。差(Y)がゼロに等しい場合,εの既定値は0.1になります。

例:‘ε’,0.3

デ,タ型:|

正則化項の強度。“λ”“汽车”,非負のスカラ,または非負値のベクトルから構成されるコンマ区切りのペアとして指定します。

  • “汽车”の場合,λ= 1/nです。

    • 交差検証の名前と値のペアの引数(CrossValなど)を指定した場合,nは分割内観測値の数です。

    • それ以外の場合,nは学習標本のサescズです。

  • 非負値のベクトルの場合,fitrlinearは,λの異なる値それぞれにいて目的関数の最適化を逐次的に昇順で実行します。

    • 解算器“sgd”または“asgd”正则化“套索”の場合,fitrlinearが前の係数の推定値を次の最適化反復のウォ,ムスタ,トとして使用することはありません。それ以外の場合,fitrlinearはウォ,ムスタ,トを使用します。

    • 正则化“套索”の場合,fitrlinearλの以後の値を使用して最適化を行うときに,係数の推定値0は値が保持されます。

    • fitrlinearは,指定された正則化強度ごとに係数の推定値を返します。

例:“λ”,10 ^ (- (10:2:2))

デ,タ型:字符|字符串||

線形回帰モデルのタ@ @プ。“学习者”“支持向量机”または“leastsquares”から構成されるコンマ区切りのペアとして指定します。

次の表では, f x x β + b です。

  • βはp個の係数のベクトルです。

  • Xはp個の予測子変数による観測値です。

  • Bはスカラバアスです。

アルゴリズム 応答の範囲 損失関数
“leastsquares” 通常の最小二乗による線形回帰 Y∊(-∞,∞) 平均二乗誤差(mse): y f x 1 2 y f x 2
“支持向量机” サポ,トベクタ,マシン回帰 “leastsquares”と同じ プシロン不感応: y f x 马克斯 0 | y f x | ε

例:“学习者”,“leastsquares”

予測子デ,タにおける観測値の次元。“行”または“列”として指定します。

メモ

観測値が列に対応するように予測子行列を配置して“ObservationsIn”、“列”を指定すると,計算時間が大幅に短縮される可能性があります。表の予測子デ,タに対して“ObservationsIn”、“列”を指定することはできません。

例:“ObservationsIn”、“列”

デ,タ型:字符|字符串

複雑度ペナルティのタ@ @プ。“正规化”“套索”または“岭”から構成されるコンマ区切りのペアとして指定します。

最小化のための目的関数は、平均損失関数(学习者を参照)と次の表の正則化項を加算することにより作成されます。

説明
“套索” 套索(l1)ペナルティ: λ j 1 p | β j |
“岭” リッジ(l2)ペナルティ: λ 2 j 1 p β j 2

正則化項の強度(式のλ)を指定するには,λを使用します。

バ△アス項(β0)は正則化ペナルティから除外されます。

解算器“sparsa”の場合,正则化の既定値は“套索”になります。それ以外の場合は,既定値は“岭”です。

ヒント

  • 予測子変数を選択する場合は,“套索”を指定します。変数の選択の詳細にいては,特徴選択の紹介を参照してください。

  • 最適化の精度を向上させるには,“岭”を指定します。

例:“正规化”、“套索”

目的関数の最小化手法。“规划求解”と次の表の値をもつ文字ベクトル,字符串スカラー,字符串配列,または文字ベクトルの细胞配列から構成されるコンマ区切りのペアとして指定します。

説明 制限
“sgd” 確率的勾配降下法(sgd)[5][3]
“asgd” 平均化確率的勾配降下法(asgd)[8]
“双重” SVM用の双対SGD[2][7] 正则化“岭”学习者“支持向量机”でなければなりません。
“蓄热” Broyden-Fletcher-Goldfarb-Shanno準ニュートンアルゴリズム(高炉煤气)[4] Xの次元数が非常に多い場合は非効率的です。
“lbfgs” 記憶制限BFGS (lbfgs)[4] 正则化“岭”でなければなりません。
“sparsa” 可分近似によるスパ,ス再構成(SpaRSA)[6] 正则化“套索”でなければなりません。

指定する項目によって,内容は次のように変わります。

  • size(X,1) <= 100(予測子変数が100個以下)の場合にリッジペナルティ(正则化を参照)を指定すると,既定のソルバ,は“蓄热”になります。

  • size(X,1) >(予測子変数が100個超)の場合にSVM回帰モデル(学习者を参照)とリッジペナルティを指定すると,既定のソルバ,は“双重”になります。

  • X100年に個以下の予測子変数が格納されている場合に套索ペナルティを指定すると,既定のソルバーは“sparsa”になります。

それ以外の場合,既定のソルバ,は“sgd”になります。

ソルバー名の字符串配列または细胞配列を指定した場合,指定した順序ですべてのソルバーが各λにいて使用されます。

選択するソルバ,の詳細は,ヒントを参照してください。

例:“规划求解”,{‘sgd’,‘lbfgs}

線形係数の初期推定値(β),“β”とp次元の数値ベクトルまたはp行L列の数値行列から構成されるコンマ区切りのペアとして指定します。pはXの予測子変数の数,lは正則化強度値の数です(詳細にいては,λを参照)。

  • p次元ベクトルを指定した場合,次のプロセスを使用して目的関数がL回最適化されます。

    1. 初期値としてβ,正則化強度としてλの最小値を使用して最適化を行う。

    2. 前回の最適化で生成された推定値をウォ,ムスタ,トとして使用し,λ内の次に小さい値を正則化強度として使用して,再度最適化を行う。

    3. λの値をすべて使用するまでステップ2を繰り返す。

  • p行L列の行列を指定した場合,目的関数がL回最適化されます。反復jでは,初期値としてβ(:,jが使用され,λを昇順で並べ替えた後で正則化強度としてλ(jが使用されます。

“规划求解”、“双”を設定した場合,βは無視されます。

デ,タ型:|

切片の初期推定値(b)。“偏见”と数値スカラまたはl次元の数値ベクトルから構成されるコンマ区切りのペアとして指定します。Lは正則化強度値の数です(詳細にいては,λを参照)。

  • スカラ,を指定した場合,次のプロセスを使用して目的関数がl回最適化されます。

    1. 初期値として偏见,正則化強度としてλの最小値を使用して最適化を行う。

    2. 生成された推定値を次回の最適化の反復でウォ,ムスタ,トとして使用し,λ内の次に小さい値を正則化強度として使用する。

    3. λの値をすべて使用するまでステップ2を繰り返す。

  • L次元ベクトルを指定した場合,目的関数がL回最適化されます。反復jでは,初期値として偏差(jが使用され,λを昇順で並べ替えた後で正則化強度としてλ(jが使用されます。

  • 既定の設定では,次のようになります。

    • 学习者“leastsquares”の場合,偏见は学習の場合はYの,交差検証の場合は分割内応答の加重平均になります。

    • 学习者“支持向量机”の場合,偏见は学習の場合はすべての学習にいてのYの,交差検証の場合はεより大きい分割内観測値の加重中央値になります。

デ,タ型:|

線形モデルの切片使用フラグ。“FitBias”真正的またはから構成されるコンマ区切りのペアとして指定します。

説明
真正的 線形モデルにバ▪▪▪▪アス項bが追加され,推定されます。
推定時にb = 0に設定されます。

例:“FitBias”,假的

デ,タ型:逻辑

最適化後に線形モデルの切片をあてはめるフラグ。“PostFitBias”真正的またはから構成されるコンマ区切りのペアとして指定します。

説明
最適化時にバ▪▪アス項bと係数▪βが推定されます。
真正的

Bを推定するため,以下が行われます。

  1. モデルを使用してβとbを推定する。

  2. 残差を計算する。

  3. Bを再度あてはめる。最小二乗の場合,bは残差の加重平均です。SVM回帰の場合,bは大きさがεより大きいすべての残差の加重中央値です。

真正的を指定する場合,FitBiasは真实でなければなりません。

例:“PostFitBias”,真的

デ,タ型:逻辑

詳細レベル。“详细”と非負の整数から構成されるコンマ区切りのペアとして指定します。详细的は,fitrlinearがコマンドラ@ @ンに表示する診断情報の量を制御します。

説明
0 fitrlinearは診断情報を表示しません。
1 fitrlinearは,目的関数の値や勾配の大きさなどの診断情報を定期的に表示および格納します。診断情報はFitInfo。历史に格納されます。
他の正の整数 fitrlinearは,各最適化反復における診断情報を表示および格納します。診断情報はFitInfo。历史に格納されます。

例:“详细”,1

デ,タ型:|

SGDおよびasgdソルバ,のオプション

すべて折りたたむ

ミニバッチのサ@ @ズ。“BatchSize”と正の整数から構成されるコンマ区切りのペアとして指定します。各反復では,学習デ,タの観測値をBatchSize個使用して劣勾配が推定されます。

  • Xが数値行列の場合,既定値は10です。

  • Xがスパ,ス行列の場合,既定値は马克斯([10日装天花板(sqrt (ff))))です。ここで,ff = numel(X)/nnz(X)X“スパ,ス性係数”)です。

例:“BatchSize”,100年

デ,タ型:|

学習率。“LearnRate”と正のスカラ,から構成されるコンマ区切りのペアとして指定します。LearnRateでは,各反復で実行するステップの回数を指定します。各反復では,各ステップの方向と大きさが勾配により指定されます。

  • 正则化“岭”の場合,LearnRateは初期学習率γ0を指定します。反復tの学習率γtは,次の式を使用して決定されます。

    γ t γ 0 1 + λ γ 0 t c

    • λはλの値です。

    • 解算器“sgd”の場合,c =1です。

    • 解算器“asgd”の場合,次のようになります。

      • 学习者“leastsquares”の場合はc =2/3

      • 学习者“支持向量机”の場合はc =3/4[8]

  • 正则化“套索”の場合,すべての反復にいてLearnRateは一定になります。

既定の設定では,LearnRate1 /√(1 +马克斯(sum (x ^ 2, obsDim))))です。obsDimは,観測値がXの列である場合は1,それ以外の場合は2です。

例:“LearnRate”,0.01

デ,タ型:|

発散(最小値の限度を超える状態)が検出された場合に学習率を減少させるフラグ。“OptimizeLearnRate”真正的またはから構成されるコンマ区切りのペアとして指定します。

OptimizeLearnRate“真正的”の場合,次のようになります。

  1. 数回の最適化反復にいて,LearnRateを学習率として使用して最適化が開始される。

  2. 目的関数の値が増加した場合,現在の学習率の半分の値を使用して再開される。

  3. 目的関数が減少するまで,ステップ2が繰り返される。

例:“OptimizeLearnRate”,真的

デ,タ型:逻辑

套索切り捨て実行間のミニバッチの回数。“TruncationPeriod”と正の整数から構成されるコンマ区切りのペアとして指定します。

切り捨て実行の後で,ソフトしきい値が線形係数に適用されます。まり,k =TruncationPeriod回のミニバッチが処理された後で,次を使用して係数推定jが切り捨てられます。

β j β j u t 如果 β j > u t 0 如果 | β j | u t β j + u t 如果 β j < u t

  • SGDの場合, β j はミニバッチを次を満たすkの回数処理した後の係数jの推定値です。 u t k γ t λ γtは反復tにおける学習率です。λはλの値です。

  • Asgdの場合, β j はミニバッチを次を満たすkの回数処理した後の係数jの平均推定値です。 u t k λ

正则化“岭”の場合,TruncationPeriodは無視されます。

例:“TruncationPeriod”,100年

デ,タ型:|

他の回帰のオプション

すべて折りたたむ

カテゴリカル予測子のリスト。次の表のいずれかの値として指定します。説明は,予測子デ,タの行に観測値、列に予測子があると仮定しています。

説明
正の整数のベクトル

ベクトルの各エントリは,カテゴリカル変数が含まれている予測子データの列に対応するインデックス値です。ンデックス値の範囲は1 ~pです。pはモデルの学習に使用した予測子の数です。

fitrlinearが入力変数のサブセットを予測子として使用する場合,関数はサブセットのみを使用して予測子にインデックスを作成します。応答変数,観測値の重み変数,および関数で使用されないその他の変数は,“CategoricalPredictors”値でカウントされません。

逻辑ベクトル

真正的というエントリは,予測子デ,タの対応する列がカテゴリカル変数であることを意味します。ベクトルの長さはpです。

文字行列 行列の各行は予測子変数の名前です。名前はPredictorNamesのエントリに一致しなくてはなりません。文字行列の各行が同じ長さになるように、名前を余分な空白で埋めてください。
文字ベクトルのcell配列または字符串配列 配列の各要素は予測子変数の名前です。名前はPredictorNamesのエントリに一致しなくてはなりません。
“所有” すべての予測子がカテゴリカルです。

既定では,予測子デ,タがテ,ブル(资源描述)内にある場合,fitrlinearは,その変数が逻辑ベクトル,直言ベクトル,文字配列,字符串配列または文字ベクトルの细胞配列のいずれかである場合に,変数を直言であると見なします。予測子デタが行列(X)である場合,fitrlinearはすべての予測子が連続的であると見なします。他の予測子をカテゴリカル予測子として指定するには,名前と値の引数“CategoricalPredictors”を使用してそれらを指定します。

特定されたカテゴリカル予測子に対して,fitrlinearはカテゴリカル変数に順序が設定されていないか順序が設定されているかに応じて,2つの異なる方式を使用してダミー変数を作成します。順序付けのないカテゴリカル変数の場合,fitrlinearは,そのカテゴリカル変数の各レベルにいて1ず。順序付けされたカテゴリカル変数の場合,fitrlinearは,カテゴリの数よりも1少ないダミ変数を作成します。詳細にいては,ダミ,変数の自動作成を参照してください。

例:“CategoricalPredictors”、“所有”

デ,タ型:||逻辑|字符|字符串|细胞

予測子変数名。一意な名前の字符串配列または一意な文字ベクトルの单元格配列として指定します。“PredictorNames”の機能は,学習デ,タの提供方法によって決まります。

  • XYを指定した場合,“PredictorNames”を使用してX内の予測子変数に名前を割り当てることができます。

    • PredictorNames内の名前の順序は,Xの予測子の順序に一致しなければなりません。Xが既定の方向(行に観測値,列に予測子)をもと仮定すると,PredictorNames {1}X (: 1)の名前,PredictorNames {2}X (:, 2)の名前(以下同様)になります。また,大小(X, 2)元素个数(PredictorNames)は等しくなければなりません。

    • 既定ではPredictorNames{x1, x2,…}です。

  • 资源描述が与えられた場合,“PredictorNames”を使用して学習に使用する予測子変数を選択できます。まり,fitrlinearは,学習中にPredictorNamesの予測子変数と応答変数のみを使用します。

    • PredictorNamesTbl.Properties.VariableNamesのサブセットでなければならず,応答変数の名前を含めることはできません。

    • 既定では,すべての予測子変数の名前がPredictorNamesに格納されます。

    • “PredictorNames”公式の両方ではなく,いずれか一方を使用して学習用の予測子を指定することをお勧めします。

例:PredictorNames,{‘SepalLength’,‘SepalWidth’,‘PetalLength’,‘PetalWidth}

デ,タ型:字符串|细胞

応答変数名。文字ベクトルまたは字符串スカラ,として指定します。

  • Yを指定した場合,“ResponseName”を使用して応答変数の名前を指定できます。

  • ResponseVarNameまたは公式を指定した場合,“ResponseName”を使用することはできません。

例:“ResponseName”、“响应”

デ,タ型:字符|字符串

応答の変換。“没有”または関数ハンドルのいずれかとして指定します。既定の設定は“没有”です。これは@ (y) y,まり変換なしを表します。MATLAB関数またはユーザー定義関数の場合は、応答変換用の関数ハンドルを使用します。関数ハンドルは、ベクトル (元の応答値) を受け入れて同じサイズのベクトル (変換した応答値) を返さなければなりません。

例:Myfunction = @(y)exp(y)を使用して,指数変換を入力ベクトルに適用する関数のハンドルを作成するとします。この場合,応答変換としてmyfunction ResponseTransform,を指定できます。

デ,タ型:字符|字符串|function_handle

観測値の重み。“重量”と,正の数値ベクトル(または资源描述に含まれる変数の名前)から構成されるコンマ区切りのペアとして指定します。ソフトウェアは,Xまたは资源描述の各観測値に,权重の対応する値で重みを付けます。权重の長さは,Xまたは资源描述の観測値の数と等しくなければなりません。

入力デ,タをテ,ブル资源描述として指定した場合,权重は数値ベクトルが含まれている资源描述内の変数の名前にすることができます。この場合,权重には文字ベクトルまたは字符串スカラ,を指定しなければなりません。たとえば,重みのベクトルW资源描述。Wとして格納されている場合,' W 'として指定します。それ以外の場合,モデルを学習させるときに、资源描述の列はWを含めてすべて予測子として扱われます。

既定の設定では,权重的(n, 1)です。nXまたは资源描述の観測値数です。

fitrlinearは合計が1になるように重みを正規化します。

デ,タ型:||字符|字符串

交差検証オプション

すべて折りたたむ

交差検証フラグ。“Crossval”“上”または“关闭”から構成されるコンマ区切りのペアとして指定します。

“上”を指定した場合,10分割の交差検証が実施されます。

この交差検証の設定をオバラドするには,名前と値のペアの引数CVPartition坚持KFoldのいずれかを使用します。交差検証済みモデルを作成するために使用できる交差検証の名前と値のペアの引数は,一度に1つだけです。

例:“Crossval”,“上”

交差検証分割。“CVPartition”cvpartitionにより作成されたcvpartition分割オブジェクトで構成されるコンマ区切りのペアとして指定します。分割オブジェクトは交差検証のタイプおよび学習と検証セットのインデックス付けを指定します。

交差検証済みモデルを作成するために使用できるオプションは,CVPartition坚持KFoldのいずれかのみです。

ホ,ルドアウト検証に使用されるデ,タの比率。“坚持”と,(0,1)の範囲内のスカラ,値から成るコンマ区切りのペアとして指定します。“坚持”,pを指定すると,次が実行されます。

  1. p* 100%のデ,タを検証デ,タとして無作為に予約し,残りのデ,タを使用してモデルを学習させる

  2. コンパクトな学習済みモデルを交差検証済みモデルの训练有素的プロパティに格納する。

交差検証済みモデルを作成するために使用できるオプションは,CVPartition坚持KFoldのいずれかのみです。

例:“坚持”,0.1

デ,タ型:|

交差検証分類器で使用する分割の数。“KFold”と1より大きい正の整数値から構成されるコンマ区切りのペアとして指定します。たとえばKFold, kを指定すると,次が実行されます。

  1. デタを無作為にk個のセットに分割する

  2. 各セットにいて,そのセットを検定デタとして予約し,他のK - 1個のセットを使用してモデルに学習をさせる

  3. k個のコンパクトな学習済みモデルを,交差検証済みモデルの训练有素的プロパティに含まれているk行1列のcellベクトルのセルに格納する。

交差検証済みモデルを作成するために使用できるオプションは,CVPartition坚持KFoldのいずれかのみです。

例:“KFold”,8

デ,タ型:|

SGDとasgdの収束制御

すべて折りたたむ

バッチを処理する最大回数。“BatchLimit”と正の整数から構成されるコンマ区切りのペアとして指定します。BatchLimit回のバッチが処理されると,最適化が終了します。

  • 既定の設定では,次のようになります。

    • デ,タを通す回数はPassLimit回です。

    • 複数のソルバーを指定し,SGDまたはASGDを使用して次のソルバーの初期近似値を取得する場合,既定値は装天花板(1 e6 / BatchSize)です。BatchSizeは名前と値のペアの引数BatchSizeの値です。

  • “BatchLimit”PassLimitを指定した場合,処理する観測値の数が最も少なくなる引数が選択されます。

  • “BatchLimit”を指定し,“PassLimit”は指定しなかった場合,デ,タ全体を完全に1回通すのに十分な回数のバッチが処理されます。

例:“BatchLimit”,100年

デ,タ型:|

線形係数およびバ▪▪アス項(切片)▪▪の相対許容誤差。“BetaTolerance”と非負のスカラ,から構成されるコンマ区切りのペアとして指定します。

B t β t b t であるとします。これは、最適化反復 t における係数およびバイアス項のベクトルです。 B t B t 1 B t 2 < BetaTolerance で最適化が終了します。

解算器で指定された最後のソルバ,で収束する場合,最適化が終了します。それ以外の場合,解算器で指定された次のソルバ,が使用されます。

例:e-6 BetaTolerance, 1

デ,タ型:|

次回の収束チェックの前にバッチを処理する回数。“NumCheckConvergence”と正の整数から構成されるコンマ区切りのペアとして指定します。

バッチのサ化学键ズの指定に化学键いて,BatchSizeを参照してください。

既定の設定では,デ,タセット全体が通されるたびに約10回収束がチェックされます。

例:“NumCheckConvergence”,100年

デ,タ型:|

デ,タを通す最大回数。“PassLimit”と正の整数から構成されるコンマ区切りのペアとして指定します。

デ,タが完全に1回通されると,すべての観測値がfitrlinearで処理されます。

デ,タが通される回数がPassLimitになると,fitrlinearは最適化を終了します。

BatchLimitPassLimitを指定した場合,処理する観測値の数が最も少なくなる引数がfitrlinearにより選択されます。詳細は,アルゴリズムを参照してください。

例:“PassLimit”,5

デ,タ型:|

最適化の収束を検出するための検証デ,タ。“ValidationData”とcell配列またはテ,ブルで構成されるコンマ区切りのペアとして指定します。

最適化時に,ValidationDataの損失が定期的に推定されます。検証デ,タの損失が増加する場合,最適化が終了します。詳細は,アルゴリズムを参照してください。交差検証を使用してハ▪▪パ▪▪パラメ▪タ▪を最適化する方法に▪▪いてはCrossValなど交差検証のオプションを参照してください。

応答変数を含む予測子デ,タの表资源描述を使用する場合,ValidationDataを表として指定できます。この場合,ValidationDataは,资源描述内に含まれるものと同じ予測子および応答を格納していなければなりません。ソフトウェアは,资源描述が重さのベクトルを含む場合であっても,観測値に重みを適用することはありません。重みを指定するには,ValidationDataをcell配列として指定しなければなりません。

ValidationDataをcell配列として指定する場合,次の形式でなければなりません。

  • ValidationData {1}は,予測子デ,タと同じデ,タ型および方向でなければなりません。まり,予測子行列Xを使用する場合,ValidationData {1}は,予測子デ,タがXと同じ方向で格納されているm行p列またはp行m列の非スパース行列またはスパース行列でなければなりません。学習デ,タXの予測子変数とValidationData {1}の予測子変数は対応していなければなりません。同様に,予測子デ,タの予測子表资源描述を使用する場合,ValidationData {1}は,资源描述に含まれるものと同じ予測子変数を格納していなければなりません。ValidationData {1}と予測子デ,タの観測値の数が同じである必要はありません。

  • ValidationData {2}は応答変数(YまたはResponseVarName)のデ,タ型および形式と一致しなければなりません。ValidationData {2}が応答の配列である場合,その要素数はValidationData {1}にある観測値の数と同じでなければなりません。ValidationData {1}が表である場合,ValidationData {2}はその表内の応答変数の名前とすることができます。同じResponseVarNameまたは公式を使用する場合,ValidationData {2}[]として指定できます。

  • 必要に応じて,ValidationData {3}を観測値の重みにValidationData {1}内の変数名として指定できます。検証デ,タに関する重みは,合計が1になるように正規化されます。

ValidationDataを指定し,コマンドラaaplンで検定損失を表示するには,0より大きい値を详细的に指定します。

解算器で指定された最後のソルバ,で収束する場合,最適化が終了します。それ以外の場合,解算器で指定された次のソルバ,が使用されます。

既定の設定では,検証デ,タの損失を監視することによる収束の検出は行われません。

勾配の絶対許容誤差。“GradientTolerance”と非負のスカラ,から構成されるコンマ区切りのペアとして指定します。GradientToleranceは,解算器の値が“蓄热”“lbfgs”または“sparsa”である場合に適用されます。

最適化反復tにおける係数およびバescアス項に関する目的関数の勾配ベクトルを t とします。 t 马克斯 | t | < GradientTolerance で最適化が終了します。

BetaToleranceも指定した場合,いずれかの終了条件がfitrlinearで満たされると最適化が終了します。

解算器で指定された最後のソルバ,でfitrlinearが収束する場合,最適化が終了します。それ以外の場合,fitrlinear解算器で指定された次のソルバ,を使用します。

例:GradientTolerance,每股收益

デ,タ型:|

最適化反復の最大回数。“IterationLimit”と正の整数から構成されるコンマ区切りのペアとして指定します。IterationLimitは,解算器の値が“蓄热”“lbfgs”または“sparsa”である場合に適用されます。

例:e7 IterationLimit, 1

デ,タ型:|

双対SGD最適化の収束制御

すべて折りたたむ

線形係数およびバ▪▪アス項(切片)▪▪の相対許容誤差。“BetaTolerance”と非負のスカラ,から構成されるコンマ区切りのペアとして指定します。

B t β t b t であるとします。これは、最適化反復 t における係数およびバイアス項のベクトルです。 B t B t 1 B t 2 < BetaTolerance で最適化が終了します。

DeltaGradientToleranceも指定した場合,いずれかの終了条件が満たされると最適化が終了します。

解算器で指定された最後のソルバ,で収束する場合,最適化が終了します。それ以外の場合,解算器で指定された次のソルバ,が使用されます。

例:e-6 BetaTolerance, 1

デ,タ型:|

上位および下位プ,ルのカル、シュ、キュ、ン、タッカ、(kkt)相補性条件違反値の間における勾配差分の許容誤差。“DeltaGradientTolerance”と非負のスカラ,から構成されるコンマ区切りのペアとして指定します。DeltaGradientToleranceは,解算器の値が“双重”である場合のみ適用されます。

  • KKT違反値の大きさがDeltaGradientToleranceより小さい場合,fitrlinearは最適化を終了させます。

  • 解算器で指定された最後のソルバ,でfitrlinearが収束する場合,最適化が終了します。それ以外の場合,fitrlinear解算器で指定された次のソルバ,を使用します。

例:依照“DeltaGapTolerance”,1

デ,タ型:|

次回の収束チェックの前に処理するデ,タセット全体が通される回数。“NumCheckConvergence”と正の整数から構成されるコンマ区切りのペアとして指定します。

例:“NumCheckConvergence”,100年

デ,タ型:|

デ,タを通す最大回数。“PassLimit”と正の整数から構成されるコンマ区切りのペアとして指定します。

デ,タが完全に1回通されると,すべての観測値が処理されます。

デ,タが通される回数がPassLimitになると,最適化が終了します。

例:“PassLimit”,5

デ,タ型:|

最適化の収束を検出するための検証デ,タ。“ValidationData”とcell配列またはテ,ブルで構成されるコンマ区切りのペアとして指定します。

最適化時に,ValidationDataの損失が定期的に推定されます。検証デ,タの損失が増加する場合,最適化が終了します。詳細は,アルゴリズムを参照してください。交差検証を使用してハ▪▪パ▪▪パラメ▪タ▪を最適化する方法に▪▪いてはCrossValなど交差検証のオプションを参照してください。

応答変数を含む予測子デ,タの表资源描述を使用する場合,ValidationDataを表として指定できます。この場合,ValidationDataは,资源描述内に含まれるものと同じ予測子および応答を格納していなければなりません。ソフトウェアは,资源描述が重さのベクトルを含む場合であっても,観測値に重みを適用することはありません。重みを指定するには,ValidationDataをcell配列として指定しなければなりません。

ValidationDataをcell配列として指定する場合,次の形式でなければなりません。

  • ValidationData {1}は,予測子デ,タと同じデ,タ型および方向でなければなりません。まり,予測子行列Xを使用する場合,ValidationData {1}は,予測子デ,タがXと同じ方向で格納されているm行p列またはp行m列の非スパース行列またはスパース行列でなければなりません。学習デ,タXの予測子変数とValidationData {1}の予測子変数は対応していなければなりません。同様に,予測子デ,タの予測子表资源描述を使用する場合,ValidationData {1}は,资源描述に含まれるものと同じ予測子変数を格納していなければなりません。ValidationData {1}と予測子デ,タの観測値の数が同じである必要はありません。

  • ValidationData {2}は応答変数(YまたはResponseVarName)のデ,タ型および形式と一致しなければなりません。ValidationData {2}が応答の配列である場合,その要素数はValidationData {1}にある観測値の数と同じでなければなりません。ValidationData {1}が表である場合,ValidationData {2}はその表内の応答変数の名前とすることができます。同じResponseVarNameまたは公式を使用する場合,ValidationData {2}[]として指定できます。

  • 必要に応じて,ValidationData {3}を観測値の重みにValidationData {1}内の変数名として指定できます。検証デ,タに関する重みは,合計が1になるように正規化されます。

ValidationDataを指定し,コマンドラaaplンで検定損失を表示するには,0より大きい値を详细的に指定します。

解算器で指定された最後のソルバ,で収束する場合,最適化が終了します。それ以外の場合,解算器で指定された次のソルバ,が使用されます。

既定の設定では,検証デ,タの損失を監視することによる収束の検出は行われません。

BFGS、LBFGSおよびSpaRSAの収束制御

すべて折りたたむ

線形係数およびバ▪▪アス項(切片)▪▪の相対許容誤差。“BetaTolerance”と非負のスカラ,から構成されるコンマ区切りのペアとして指定します。

B t β t b t であるとします。これは、最適化反復 t における係数およびバイアス項のベクトルです。 B t B t 1 B t 2 < BetaTolerance で最適化が終了します。

GradientToleranceも指定した場合,いずれかの終了条件が満たされると最適化が終了します。

解算器で指定された最後のソルバ,で収束する場合,最適化が終了します。それ以外の場合,解算器で指定された次のソルバ,が使用されます。

例:e-6 BetaTolerance, 1

デ,タ型:|

勾配の絶対許容誤差。“GradientTolerance”と非負のスカラ,から構成されるコンマ区切りのペアとして指定します。

最適化反復tにおける係数およびバescアス項に関する目的関数の勾配ベクトルを t とします。 t 马克斯 | t | < GradientTolerance で最適化が終了します。

BetaToleranceも指定した場合,いずれかの終了条件が満たされると最適化が終了します。

指定された最後のソルバ,で収束する場合,最適化が終了します。それ以外の場合,解算器で指定された次のソルバ,が使用されます。

例:e-5 GradientTolerance, 1

デ,タ型:|

ヘッセ近似の履歴バッファのサズ。“HessianHistorySize”と正の整数から構成されるコンマ区切りのペアとして指定します。各反復において,最新のHessianHistorySize回の反復の統計量を使用してヘッシアンが構成されます。

SpaRSAの場合,“HessianHistorySize”はサポ,トされません。

例:“HessianHistorySize”,10

デ,タ型:|

最適化反復の最大回数。“IterationLimit”と正の整数から構成されるコンマ区切りのペアとして指定します。IterationLimitは,解算器の値が“蓄热”“lbfgs”または“sparsa”である場合に適用されます。

例:“IterationLimit”,500年

デ,タ型:|

最適化の収束を検出するための検証デ,タ。“ValidationData”とcell配列またはテ,ブルで構成されるコンマ区切りのペアとして指定します。

最適化時に,ValidationDataの損失が定期的に推定されます。検証デ,タの損失が増加する場合,最適化が終了します。詳細は,アルゴリズムを参照してください。交差検証を使用してハ▪▪パ▪▪パラメ▪タ▪を最適化する方法に▪▪いてはCrossValなど交差検証のオプションを参照してください。

応答変数を含む予測子デ,タの表资源描述を使用する場合,ValidationDataを表として指定できます。この場合,ValidationDataは,资源描述内に含まれるものと同じ予測子および応答を格納していなければなりません。ソフトウェアは,资源描述が重さのベクトルを含む場合であっても,観測値に重みを適用することはありません。重みを指定するには,ValidationDataをcell配列として指定しなければなりません。

ValidationDataをcell配列として指定する場合,次の形式でなければなりません。

  • ValidationData {1}は,予測子デ,タと同じデ,タ型および方向でなければなりません。まり,予測子行列Xを使用する場合,ValidationData {1}は,予測子デ,タがXと同じ方向で格納されているm行p列またはp行m列の非スパース行列またはスパース行列でなければなりません。学習デ,タXの予測子変数とValidationData {1}の予測子変数は対応していなければなりません。同様に,予測子デ,タの予測子表资源描述を使用する場合,ValidationData {1}は,资源描述に含まれるものと同じ予測子変数を格納していなければなりません。ValidationData {1}と予測子デ,タの観測値の数が同じである必要はありません。

  • ValidationData {2}は応答変数(YまたはResponseVarName)のデ,タ型および形式と一致しなければなりません。ValidationData {2}が応答の配列である場合,その要素数はValidationData {1}にある観測値の数と同じでなければなりません。ValidationData {1}が表である場合,ValidationData {2}はその表内の応答変数の名前とすることができます。同じResponseVarNameまたは公式を使用する場合,ValidationData {2}[]として指定できます。

  • 必要に応じて,ValidationData {3}を観測値の重みにValidationData {1}内の変数名として指定できます。検証デ,タに関する重みは,合計が1になるように正規化されます。

ValidationDataを指定し,コマンドラaaplンで検定損失を表示するには,0より大きい値を详细的に指定します。

解算器で指定された最後のソルバ,で収束する場合,最適化が終了します。それ以外の場合,解算器で指定された次のソルバ,が使用されます。

既定の設定では,検証デ,タの損失を監視することによる収束の検出は行われません。

ハパパラメタの最適化

すべて折りたたむ

最適化するパラメタ。“OptimizeHyperparameters”と次のいずれかから構成されるコンマ区切りのペアとして指定します。

  • “没有”-最適化を行いません。

  • “汽车”- - - - - -{“λ”、“学习者”}を使用します。

  • “所有”—すべての使用可能パラメタを最適化します。

  • 使用可能パラメ,タ,名のstring配列またはcell配列。

  • optimizableVariableオブジェクトのベクトル。通常はhyperparametersの出力です。

最適化では,パラメ,タ,を変化させることにより,fitrlinearの交差検証損失(誤差)を最小化しようとします。交差検証のタesc escプおよびその他の最適化の側面を制御するには,名前と値のペアHyperparameterOptimizationOptionsを使用します。

メモ

“OptimizeHyperparameters”の値は,他の名前と値のペアの引数を使用して設定した値より優先されます。たとえば,“OptimizeHyperparameters”“汽车”に設定すると,“汽车”の値が適用されます。

fitrlinearでは,以下のパラメ,タ,を使用できます。

  • λ- - - - - -fitrlinearは,既定では範囲[1 e-5 / NumObservations 1 e5 / NumObservations]の対数スケ,ルで,正の値を探索します。

  • 学习者- - - - - -fitrlinearは,“支持向量机”“leastsquares”で探索します。

  • 正则化- - - - - -fitrlinearは,“岭”“套索”で探索します。

既定以外のパラメ,タ,を設定するには,既定以外の値が含まれているoptimizableVariableオブジェクトのベクトルを渡します。たとえば,以下のようにします。

负载carsmallParams =超参数(“fitrlinear”(功率、重量),MPG);参数(1)。Range = [1e-3,2e4];

OptimizeHyperparametersの値として参数个数を渡します。

既定では,コマンドラインに反復表示が表示され,最適化のハイパーパラメーターの個数に従ってプロットが表示されます。最適化とプロットにおける目的関数は,回帰の場合はLog(1 +交叉验证损失),分類の場合は誤分類率です。反復表示を制御するには、名前と値のペアの引数“HyperparameterOptimizationOptions”详细的フィ,ルドを設定します。プロットを制御するには,名前と値のペアの引数“HyperparameterOptimizationOptions”ShowPlotsフィ,ルドを設定します。

たとえば,線形回帰の最適化を参照してください。

例:“OptimizeHyperparameters”、“汽车”

最適化のオプション。“HyperparameterOptimizationOptions”と構造体から構成されるコンマ区切りのペアとして指定します。この引数を指定すると,名前と値のペアの引数OptimizeHyperparametersの効果が変化します。この構造体のフィ,ルドは,すべてオプションです。

フィ,ルド名 既定の設定
优化器
  • “bayesopt”-ベie浏览器ズ最適化を使用。内部的には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”

オブジェクト関数のランタesc escムによって最適化が異なるので,名前に每秒が含まれている獲得関数は,再現性がある結果を生成しません。名前に+が含まれている獲得関数は,領域を過剰利用している場合に動作を変更します。詳細は,獲得関数のタ@ @プを参照してください。

“expected-improvement-per-second-plus”
MaxObjectiveEvaluations 目的関数評価の最大数。 “bayesopt”または“randomsearch”の場合は30.“gridsearch”の場合はグリッド全体
MaxTime

制限時間。正の実数を指定します。制限時間の単位は,抽搐tocによって測定される秒です。MaxTimeは関数評価を中断させないため,実行時間がMaxTimeを超える可能性があります。

NumGridDivisions “gridsearch”における各次元の値の個数。値は、各次元の値の個数を表す正の整数のベクトル、またはすべての次元に適用されるスカラーが可能です。カテゴリカル変数の場合、このフィールドは無視されます。 10
ShowPlots プロットを表示するかどうかを示す論理値。真正的の場合,最良の目的関数の値が反復回数に対してプロットされます。1,优化器“bayesopt”である場合,ShowPlotsはパラメ,タ,に対する目的関数のモデルのプロットも行います。 真正的
SaveIntermediateResults 优化器“bayesopt”である場合に結果を保存するかどうかを示す論理値。真正的の場合,“BayesoptResults”という名前のワ,クスペ,ス変数が反復ごとに上書きされます。この変数はBayesianOptimizationオブジェクトです。
详细的

コマンドラ@ @ンへの表示。

  • 0-反復表示なし

  • 1-反復表示あり

  • 2-追加情報付きで反復表示あり

詳細にいては,bayesoptの名前と値のペアの引数详细的を参照してください。

1
UseParallel ベ@ @ズ最適化を並列実行するかどうかを示す論理値。並列実行には并行计算工具箱™が必要です。並列でのタイミングに再現性がないため,並列ベイズ最適化で再現性のある結果が生成されるとは限りません。詳細にいては,並列ベ@ @ズ最適化を参照してください。
重新分区

反復ごとに交差検証を再分割するかどうかを示す論理値。の場合,オプティマ。

分割ノesc escズが考慮されるので,通常は真正的にすると最も確実な結果が得られます。ただし,真正的で良好な結果を得るには,2倍以上の関数評価が必要になります。

以下の3のフィルド名は1だけ使用できます。
CVPartition cvpartitionによって作成されるcvpartitionオブジェクト。 交差検証フィ,ルドが指定されていない場合“Kfold”,5
坚持 ホ,ルドアウトの比率を表す範囲(0,1)のスカラ。
Kfold 1より大きい整数。

例:“HyperparameterOptimizationOptions”、结构(MaxObjectiveEvaluations, 60)

デ,タ型:结构体

出力引数

すべて折りたたむ

学習済みの線形回帰モデル。RegressionLinearモデルオブジェクトまたはRegressionPartitionedLinear交差検証済みモデルオブジェクトとして返されます。

名前と値のペアの引数KFold坚持CrossValCVPartitionのいずれかを設定した場合,MdlRegressionPartitionedLinear交差検証済みモデルオブジェクトになります。それ以外の場合,MdlRegressionLinearモデルオブジェクトになります。

Mdlのプロパティを参照するには,ドット表記を使用します。たとえば,推定された係数のベクトルまたは行列を表示するには、コマンド ウィンドウにMdl。βと入力します。

メモ

他の回帰モデルとは異なり,また,メモリ消費を節約するため,学習データや最適化の詳細(収束履歴など)はRegressionLinearおよびRegressionPartitionedLinearモデルオブジェクトに格納されません。

最適化の詳細。構造体配列として返されます。

各フィ,ルドには,最終的な値または名前と値のペアの引数の指定が格納されます。たとえば,客观的は最適化が終了したときの目的関数の値です。多次元フィ,ルドの行はλの値に,列は解算器の値に対応します。

次の表で,主なフィ,ルドを説明します。

フィ,ルド 説明
TerminationStatus
  • 最適化の終了理由

  • TerminationCodeの値に対応

FitTime 秒単位の経過実時間
历史

各反復における最適化情報の構造体配列。解算器フィルドには,整数符号化を使用してソルバのタプが格納されます。

整数 ソルバ
1 SGD
2 ASGD
3. SVM用の双対SGD
4 LBFGS
5 高炉煤气
6 SpaRSA

フィ,ルドにアクセスするには,ドット表記を使用します。たとえば,各反復における目的関数値のベクトルにアクセスするには、FitInfo.History.Objectiveと入力します。

FitInfoを確認して,収束が満足できるものであるかどうかを評価することをお勧めします。

ハパパラメタの交差検証最適化。ハパパラメタおよび関連する値が含まれている表またはBayesianOptimizationオブジェクトとして返されます。“OptimizeHyperparameters”の値が“没有”ではない場合,出力は空以外です。出力値は,名前と値のペアの引数“HyperparameterOptimizationOptions”优化器フィ,ルドの値に依存します。

优化器フィ,ルドの値 HyperparameterOptimizationResultsの値
“bayesopt”(既定の設定) BayesianOptimizationクラスのオブジェクト
“gridsearch”または“randomsearch” 使用したハイパーパラメーター,観測された目的関数の値(交差検証損失),および最低(最良)から最高(最悪)までの観測値の順位が格納されているテーブル

メモ

学习者“leastsquares”の場合,目的関数の損失項はmseの半分になります。既定の設定では,损失はmseを返します。したがって,损失を使用して再代入誤差または学習誤差をチェックした場合,损失によって返されるmseは,FitInfoの最適化結果や,详细的を使用して正の詳細レベルを設定した場合にコマンドラ@ @ンに返される結果と異なります。

詳細

すべて折りたたむ

ウォ,ムスタ,ト

“ウォ,ムスタ,ト”は、収束時間を短縮するために最適化ル、チンに与えられるベ、タ係数およびバ、アス項の初期推定値です。

低次元デ,タの代替方法

高次元の線形分類および回帰モデルでは比較的高速に目的関数を最小化できますが,精度が犠牲になり,予測子変数が数値のみに制限され,モデルがパラメーターに関して線形でなければなりません。予測子データセットが低~中次元の場合,または種類の異なる変数が混在している場合,適切な分類または回帰近似関数を使用する必要があります。次の表は,どの近似関数が低次元デ,タセットに適しているかを判断するために役立,ます。

近似させるモデル 関数 主なアルゴリズムの違い
支持向量机
  • 非線形カ,ネル変換に適している,予測子変数のグラム行列を計算します。

  • quadprog(优化工具箱)を使用して二次計画法でsmo, isdaまたはl1最小化により双対問題を解きます。

線形回帰
  • 正則化を行わない最小二乗:fitlm

  • 套索ペナルティを使用する正則化最小二乗:套索

  • リッジ回帰:または套索

  • 套索は,循環的な座標降下を実装します。

ロジスティック回帰
  • 正則化を行わないロジスティック回帰:fitglm

  • 套索ペナルティを使用する正則化ロジスティック回帰:lassoglm

  • fitglmは,反復的に再重み付けした最小二乗を実装します。

  • lassoglmは,循環的な座標降下を実装します。

ヒント

  • 観測値が列に対応するように予測子行列を配置して“ObservationsIn”、“列”を指定することをお勧めします。このようにすると,最適化実行時間が大幅に短縮される可能性があります。

  • 予測子デ,タが高次元で正则化値が“岭”のときに最適化の精度を向上させるには,解算器に次のいずれかのオプションを設定します。

    • “sgd”

    • “asgd”

    • “双重”学习者“支持向量机”の場合)

    • {“sgd”、“lbfgs”}

    • {“asgd”、“lbfgs”}

    • {“双”、“lbfgs”}学习者“支持向量机”の場合)

    他のオプションでは,最適化の精度が低下する可能性があります。

  • 予測子デ,タが中~低次元で正则化値が“岭”のときに最適化の精度を向上させるには,解算器“蓄热”に設定します。

  • 正则化“套索”の場合,解算器に次のいずれかのオプションを設定します。

    • “sgd”

    • “asgd”

    • “sparsa”

    • {“sgd”、“sparsa”}

    • {“asgd”、“sparsa”}

  • SGDとasgdのいずれかを選択する場合,以下を考慮します。

    • SGDは反復あたりの時間が短くなりますが,収束するまでに必要な反復回数が多くなります。

    • Asgdは収束するまでに必要な反復回数が少なくなりますが,反復あたりの時間が長くなります。

  • 予測子デ,タに含まれている観測値の数が少なく,予測子変数の数が多い場合,次のようにします。

    • “PostFitBias”,真的を指定します。

    • ソルバ,がSGDまたはasgdの場合,PassLimitを1より大きい正の整数(5や10など)に設定します。このように設定すると,多くの場合に精度が向上します。

  • ソルバ,がSGDまたはasgdの場合,BatchSizeは収束速度に影響を与えます。

    • BatchSizeが小さすぎる場合,fitrlinearが最小値を計算するための反復回数は多くなりますが,反復ごとの勾配の計算時間は短くなります。

    • BatchSizeが大きすぎる場合,fitrlinearが最小値を計算するための反復回数は少なくなりますが,反復ごとの勾配の計算時間は長くなります。

  • 学習率 (LearnRateを参照)が大きいと,最小値への収束が高速になりますが,発散(最小値の限度を超える状態)の可能性があります。学習率が小さいと最小値への収束が保証されますが,終了までに時間がかかる可能性があります。

  • 套索ペナルティを使用する場合は,さまざまな値のTruncationPeriodを試してください。たとえば,TruncationPeriod110に設定してからOne hundred.に設定します。

  • 効率のため,fitrlinearは予測子デ,タを標準化しません。Xを標準化するには,次のように入力します。

    X = bsxfun (@rdivide bsxfun (@minus X,意味着(X, 2)),性病(0,2));

    このコ,ドでは,予測子が行,観測値が列に対応するようにXが配置されている必要があります。また,メモリを節約するため、このコードは元の予測子データを標準化されたデータに置き換えます。

  • モデルに学習をさせた後で,新しいデタにいて応答を予測するc / c++コドを生成できます。C/ c++コ,ドの生成にはMATLAB编码器™が必要です。詳細については、コ,ド生成の紹介を参照してください。

アルゴリズム

  • ValidationDataを指定した場合,目的関数の最適化時に以下が行われます。

    • fitrlinearは,現在のモデルを使用してValidationDataの検定損失を定期的に推定し,最小の推定値を追跡します。

    • fitrlinearは,検定損失を推定するときに,推定値を最小の推定値と比較します。

    • 以後の検定損失の推定値が最小推定値の5倍より大きくなった場合,fitrlinearは最適化を終了します。

  • ValidationDataを指定して交差検証ルチン(CrossValCVPartition坚持またはKFold)を実装した場合,次のようになります。

    1. fitrlinearは,選択された交差検証ル,チンに従ってXY(または)资源描述)を無作為に分割します。

    2. fitrlinearは,学習デ,タの分割を使用してモデルに学習をさせます。目的関数の最適化時に,fitrlinearは最適化を終了させるための他の可能な方法としてValidationDataを使用します(詳細にいては,前の項目を参照)。

    3. 終了条件が満たされると,fitrlinearは最適化された線形係数および切片に基づいて学習済みのモデルを構築します。

      1. K分割交差検証を実装した場合,fitrlinearが網羅していない学習セット分割があると,fitrlinearはステップ2に戻り,次の学習セット分割を使用して学習を行います。

      2. それ以外の場合,fitrlinearは学習を終了させ,交差検証済みのモデルを返します。

    4. 交差検証済みモデルの品質を判断できます。以下に例を示します。

      • ステップ1のホールドアウトまたは分割外データを使用して検定損失を決定するには,交差検証済みのモデルをkfoldLossに渡します。

      • ステップ1のホ,ルドアウトまたは分割外デ,タで観測値を予測するには,交差検証済みのモデルをkfoldPredictに渡します。

参照

[1]何超海、林超杰。“大规模线性支持向量回归。”万博1manbetx机器学习研究,Vol. 13, 2012, pp. 3323-3348。

[2]谢长杰,张桂文,林长杰,s.s. Keerthi, s.s Sundararajan。大规模线性支持向量机的双坐标下降方法。第25届机器学习国际会议论文集,ICML ' 08, 2001,第408-415页。

[3] Langford, J., Li ., and T. Zhang。“通过截断梯度的稀疏在线学习。”j·马赫。学习。Res. Vol. 10, 2009, pp. 777-801。

[4]诺西德尔,J.和S. J.赖特。数值优化,第2版,纽约:施普林格,2006。

[5]沙利夫-施瓦兹,S. Y.辛格和N.斯雷布罗。Pegasos:支持向量机的原始估计次梯度求解器第24届机器学习国际会议论文集,ICML ' 07, 2007,第807-814页。

[6]赖特,S. J. R. D.诺瓦克,M. A. T.菲格雷多。"可分离近似的稀疏重建"反式。中国医药学报,Vol. 57, No . 7, 2009, pp. 2479-2493。

小,林。正则化随机学习和在线优化的双平均方法j·马赫。学习。Res. Vol. 11, 2010, pp. 2543-2596。

徐伟。“用平均随机梯度下降法实现最优一次大规模学习”防伪学报,abs/1107.2490, 2011。

拡張機能

R2016aで導入