このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
高次元デ,タに対する線形回帰モデルのあてはめ
fitrlinear
は,高次元の非スパ,スまたはスパ,ス予測子デ,タを使用して効率的に線形回帰モデルに学習をさせます。使用可能な線形回帰モデルには,正則化されたサポートベクターマシン(SVM)と最小二乗回帰法があります。fitrlinear
は,計算時間を短縮する手法(確率的勾配降下法など)を使用して目的関数を最小化します。
多数の予測子変数が含まれている高次元デ,タセットに対する計算時間を短縮するには,fitrlinear
を使用して線形回帰モデルに学習をさせます。低~中次元の予測子デタセットにいては,低次元デ,タの代替方法を参照してください。
は,テ,ブルMdl
= fitrlinear (资源描述
,ResponseVarName
)资源描述
内の予測子変数と资源描述。ResponseVarName
内の応答値を使用して,線形回帰モデルを返します。
[
は,名前と値のペアMdl
,FitInfo
,HyperparameterOptimizationResults
= fitrlinear(___)OptimizeHyperparameters
。
Svm,双対SGDおよびリッジ正則化を使用して線形回帰モデルに学習をさせます。
次のモデルにより,10000個の観測値をシミュレ,トします。
は,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'}
Mdl
はRegressionLinear
モデルです。Mdl
と学習デ,タまたは新しいデ,タを损失
に渡して,標本内二乗平均誤差を調べることができます。または,Mdl
と新しい予測子デ,タを预测
に渡して,新しい観測値の応答を予測することができます。
FitInfo
は,重要な情報として終了ステ,タス(TerminationStatus
)とソルバ、によるモデルのデ、タへのあてはめにかかった時間(FitTime
)が含まれている構造体配列です。FitInfo
を使用して,最適化終了時の結果が満足できるものであるかどうかを判断することをお勧めします。この場合,fitrlinear
は最大反復回数に達しました。モデルに再学習をさせることもできますが,学習時間は短いので,デ,タを通す回数を増やしてください。または,lbfgsなど別のソルバ,を試してください。
最小二乗を使用する線形回帰モデルに適した套索ペナルティの強度を決定するため,5分割の交差検証を実装します。
次のモデルにより,10000個の観測値をシミュレ,トします。
は,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);
~ の範囲で対数間隔で配置された15個の正則化強度を作成します。
Lambda = logspace(-5,-1,15);
モデルを交差検証します。実行速度を向上させるため,予測子デ,タを転置し,観測値が列単位であることを指定します。SpaRSAを使用して目的関数を最適化します。
X = X';CVMdl = fitrlinear(X,Y,“ObservationsIn”,“列”,“KFold”5,“λ”λ,...“学习者”,“leastsquares”,“规划求解”,“sparsa”,“正规化”,“套索”);numCLModels = nummel (CVMdl.Trained)
numCLModels = 5
CVMdl
はRegressionPartitionedLinear
モデルです。fitrlinear
は5分割の交差検証を実装するので,各分割にいて学習させる5のRegressionLinear
モデルがCVMdl
に格納されます。
1番目の学習済み線形回帰モデルを表示します。
Mdl1 = CVMdl。训练有素的{1}
Mdl1 = RegressionLinear ResponseName: 'Y' ResponseTransform: 'none' Beta: [1000x15 double]偏差:[1x15 double] Lambda: [1x15 double]学习者:'最小二乘'属性,方法
Mdl1
はRegressionLinear
モデルオブジェクトです。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}λ的)举行从
予測子変数のスパ,ス性と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
を使用して自動的にハパパラメタを最適化する方法を示します。この例では,人為的な (シミュレートされた) データをモデルに対して使用します。
は,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 |
__________________________________________________________ 优化完成。最大目标达到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]
この最適化手法は交差検証の使用による適切な套索ペナルティの特定で示されているものよりシンプルですが,モデルの複雑度と交差検証損失との間のトレードオフはできません。
X
- - - - - -予測子デ,タ予測子デ,タ。n行 p 列の非スパース行列またはスパース行列を指定します。
Y
の長さとX
の観測値数は同じでなければなりません。
メモ
観測値が列に対応するように予測子行列を配置して“ObservationsIn”、“列”
を指定すると,最適化実行時間が大幅に短縮される可能性があります。
デ,タ型:单
|双
资源描述
- - - - - -標本デ,タモデルを学習させるために使用する標本デ,タ。テ,ブルとして指定します。资源描述
の各行は1の観測値に,各列は1。オプションとして,资源描述
に応答変数用の列を1追加できます。文字ベクトルのcell配列ではない cell 配列と複数列の変数は使用できません。
资源描述
に応答変数が含まれている場合に资源描述
内の他の変数をすべて予測子として使用するには,ResponseVarName
を使用して応答変数を指定します。
资源描述
に応答変数が含まれている場合に资源描述
内の他の変数の一部のみを予測子として使用するには,公式
を使用して式を指定します。
资源描述
に応答変数が含まれていない場合は,Y
を使用して応答変数を指定します。応答変数の長さと资源描述
の行数は等しくなければなりません。
デ,タ型:表格
公式
- - - - - -応答変数および予測子変数サブセットの説明モデル応答変数および予測子変数サブセットの説明モデル。“Y ~ x1 + x2 + x3”
という形式の文字ベクトルまたは字符串スカラ,を指定します。この形式では,Y
は応答変数を,x1
、x2
および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) / 13.49
です。これは、応答変数Y
の四分位数間範囲を使用した標準偏差の推定値です。差(Y)
がゼロに等しい場合,ε
の既定値は0.1になります。
例:‘ε’,0.3
デ,タ型:单
|双
λ
- - - - - -正則化項の強度“汽车”
(既定値) |非負のスカラ|非負値のベクトル。正則化項の強度。“λ”
と“汽车”
,非負のスカラ,または非負値のベクトルから構成されるコンマ区切りのペアとして指定します。
“汽车”
の場合,λ
= 1/nです。
交差検証の名前と値のペアの引数(CrossVal
など)を指定した場合,nは分割内観測値の数です。
それ以外の場合,nは学習標本のサescズです。
非負値のベクトルの場合,fitrlinear
は,λ
の異なる値それぞれにいて目的関数の最適化を逐次的に昇順で実行します。
例:“λ”,10 ^ (- (10:2:2))
デ,タ型:字符
|字符串
|双
|单
学习者
- - - - - -線形回帰モデルのタ@ @プ“支持向量机”
(既定値) |“leastsquares”
線形回帰モデルのタ@ @プ。“学习者”
と“支持向量机”
または“leastsquares”
から構成されるコンマ区切りのペアとして指定します。
次の表では, です。
βはp個の係数のベクトルです。
Xはp個の予測子変数による観測値です。
Bはスカラバアスです。
値 | アルゴリズム | 応答の範囲 | 損失関数 |
---|---|---|---|
“leastsquares” |
通常の最小二乗による線形回帰 | Y∊(-∞,∞) | 平均二乗誤差(mse): |
“支持向量机” |
サポ,トベクタ,マシン回帰 | “leastsquares” と同じ |
プシロン不感応: |
例:“学习者”,“leastsquares”
ObservationsIn
- - - - - -予測子デ,タにおける観測値の次元“行”
(既定値) |“列”
予測子デ,タにおける観測値の次元。“行”
または“列”
として指定します。
メモ
観測値が列に対応するように予測子行列を配置して“ObservationsIn”、“列”
を指定すると,計算時間が大幅に短縮される可能性があります。表の予測子デ,タに対して“ObservationsIn”、“列”
を指定することはできません。
例:“ObservationsIn”、“列”
デ,タ型:字符
|字符串
正则化
- - - - - -複雑度ペナルティのタ@ @プ“套索”
|“岭”
複雑度ペナルティのタ@ @プ。“正规化”
と“套索”
または“岭”
から構成されるコンマ区切りのペアとして指定します。
最小化のための目的関数は、平均損失関数(学习者
を参照)と次の表の正則化項を加算することにより作成されます。
値 | 説明 |
---|---|
“套索” |
套索(l1)ペナルティ: |
“岭” |
リッジ(l2)ペナルティ: |
正則化項の強度(式のλ)を指定するには,λ
を使用します。
バ△アス項(β0)は正則化ペナルティから除外されます。
解算器
が“sparsa”
の場合,正则化
の既定値は“套索”
になります。それ以外の場合は,既定値は“岭”
です。
ヒント
予測子変数を選択する場合は,“套索”
を指定します。変数の選択の詳細にいては,特徴選択の紹介を参照してください。
最適化の精度を向上させるには,“岭”
を指定します。
例:“正规化”、“套索”
解算器
- - - - - -目的関数の最小化手法“sgd”
|“asgd”
|“双重”
|“蓄热”
|“lbfgs”
|“sparsa”
|字符串配列|文字ベクトルのcell配列目的関数の最小化手法。“规划求解”
と次の表の値をもつ文字ベクトル,字符串スカラー,字符串配列,または文字ベクトルの细胞配列から構成されるコンマ区切りのペアとして指定します。
値 | 説明 | 制限 |
---|---|---|
“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回帰モデル(学习者
を参照)とリッジペナルティを指定すると,既定のソルバ,は“双重”
になります。
X
100年に個以下の予測子変数が格納されている場合に套索ペナルティを指定すると,既定のソルバーは“sparsa”
になります。
それ以外の場合,既定のソルバ,は“sgd”
になります。
ソルバー名の字符串配列または细胞配列を指定した場合,指定した順序ですべてのソルバーが各λ
にいて使用されます。
選択するソルバ,の詳細は,ヒントを参照してください。
例:“规划求解”,{‘sgd’,‘lbfgs}
β
- - - - - -線形係数の初期推定値0 (p
, 1)
(既定値) |数値ベクトル|数値行列線形係数の初期推定値(β),“β”
とp次元の数値ベクトルまたはp行L列の数値行列から構成されるコンマ区切りのペアとして指定します。pはX
の予測子変数の数,lは正則化強度値の数です(詳細にいては,λ
を参照)。
p次元ベクトルを指定した場合,次のプロセスを使用して目的関数がL回最適化されます。
初期値としてβ
,正則化強度としてλ
の最小値を使用して最適化を行う。
前回の最適化で生成された推定値をウォ,ムスタ,トとして使用し,λ
内の次に小さい値を正則化強度として使用して,再度最適化を行う。
λ
の値をすべて使用するまでステップ2を繰り返す。
p行L列の行列を指定した場合,目的関数がL回最適化されます。反復j
では,初期値としてβ(:,
が使用され,j
)λ
を昇順で並べ替えた後で正則化強度としてλ(
が使用されます。j
)
“规划求解”、“双”
を設定した場合,β
は無視されます。
デ,タ型:单
|双
偏见
- - - - - -切片の初期推定値切片の初期推定値(b)。“偏见”
と数値スカラまたはl次元の数値ベクトルから構成されるコンマ区切りのペアとして指定します。Lは正則化強度値の数です(詳細にいては,λ
を参照)。
スカラ,を指定した場合,次のプロセスを使用して目的関数がl回最適化されます。
初期値として偏见
,正則化強度としてλ
の最小値を使用して最適化を行う。
生成された推定値を次回の最適化の反復でウォ,ムスタ,トとして使用し,λ
内の次に小さい値を正則化強度として使用する。
λ
の値をすべて使用するまでステップ2を繰り返す。
L次元ベクトルを指定した場合,目的関数がL回最適化されます。反復j
では,初期値として偏差(
が使用され,j
)λ
を昇順で並べ替えた後で正則化強度としてλ(
が使用されます。j
)
既定の設定では,次のようになります。
デ,タ型:单
|双
FitBias
- - - - - -線形モデルの切片使用フラグ真正的
(既定値) |假
線形モデルの切片使用フラグ。“FitBias”
と真正的
または假
から構成されるコンマ区切りのペアとして指定します。
値 | 説明 |
---|---|
真正的 |
線形モデルにバ▪▪▪▪アス項bが追加され,推定されます。 |
假 |
推定時にb = 0に設定されます。 |
例:“FitBias”,假的
デ,タ型:逻辑
PostFitBias
- - - - - -最適化後に線形モデルの切片をあてはめるフラグ假
(既定値) |真正的
详细的
- - - - - -詳細レベル0
(既定値) |非負の整数詳細レベル。“详细”
と非負の整数から構成されるコンマ区切りのペアとして指定します。详细的
は,fitrlinear
がコマンドラ@ @ンに表示する診断情報の量を制御します。
値 | 説明 |
---|---|
0 |
fitrlinear は診断情報を表示しません。 |
1 |
fitrlinear は,目的関数の値や勾配の大きさなどの診断情報を定期的に表示および格納します。診断情報はFitInfo。历史 に格納されます。 |
他の正の整数 | fitrlinear は,各最適化反復における診断情報を表示および格納します。診断情報はFitInfo。历史 に格納されます。 |
例:“详细”,1
デ,タ型:双
|单
BatchSize
- - - - - -ミニバッチのサ@ @ズミニバッチのサ@ @ズ。“BatchSize”
と正の整数から構成されるコンマ区切りのペアとして指定します。各反復では,学習デ,タの観測値をBatchSize
個使用して劣勾配が推定されます。
X
が数値行列の場合,既定値は10
です。
X
がスパ,ス行列の場合,既定値は马克斯([10日装天花板(sqrt (ff))))
です。ここで,ff = numel(X)/nnz(X)
(X
の“スパ,ス性係数”)です。
例:“BatchSize”,100年
デ,タ型:单
|双
LearnRate
- - - - - -学習率学習率。“LearnRate”
と正のスカラ,から構成されるコンマ区切りのペアとして指定します。LearnRate
では,各反復で実行するステップの回数を指定します。各反復では,各ステップの方向と大きさが勾配により指定されます。
正则化
が“岭”
の場合,LearnRate
は初期学習率γ0を指定します。反復tの学習率γtは,次の式を使用して決定されます。
正则化
が“套索”
の場合,すべての反復にいてLearnRate
は一定になります。
既定の設定では,LearnRate
は1 /√(1 +马克斯(sum (x ^ 2, obsDim))))
です。obsDim
は,観測値がX
の列である場合は1
,それ以外の場合は2
です。
例:“LearnRate”,0.01
デ,タ型:单
|双
OptimizeLearnRate
- - - - - -学習率を減少させるフラグ真正的
(既定値) |假
発散(最小値の限度を超える状態)が検出された場合に学習率を減少させるフラグ。“OptimizeLearnRate”
と真正的
または假
から構成されるコンマ区切りのペアとして指定します。
OptimizeLearnRate
が“真正的”
の場合,次のようになります。
数回の最適化反復にいて,LearnRate
を学習率として使用して最適化が開始される。
目的関数の値が増加した場合,現在の学習率の半分の値を使用して再開される。
目的関数が減少するまで,ステップ2が繰り返される。
例:“OptimizeLearnRate”,真的
デ,タ型:逻辑
TruncationPeriod
- - - - - -套索切り捨て実行間のミニバッチの回数10
(既定値) |正の整数套索切り捨て実行間のミニバッチの回数。“TruncationPeriod”
と正の整数から構成されるコンマ区切りのペアとして指定します。
切り捨て実行の後で,ソフトしきい値が線形係数に適用されます。まり,k =TruncationPeriod
回のミニバッチが処理された後で,次を使用して係数推定jが切り捨てられます。
SGDの場合,
はミニバッチを次を満たすkの回数処理した後の係数jの推定値です。
γtは反復tにおける学習率です。λはλ
の値です。
Asgdの場合, はミニバッチを次を満たすkの回数処理した後の係数jの平均推定値です。
正则化
が“岭”
の場合,TruncationPeriod
は無視されます。
例:“TruncationPeriod”,100年
デ,タ型:单
|双
CategoricalPredictors
- - - - - -カテゴリカル予測子のリスト“所有”
カテゴリカル予測子のリスト。次の表のいずれかの値として指定します。説明は,予測子デ,タの行に観測値、列に予測子があると仮定しています。
値 | 説明 |
---|---|
正の整数のベクトル | ベクトルの各エントリは,カテゴリカル変数が含まれている予測子データの列に対応するインデックス値です。ンデックス値の範囲は1 ~
|
逻辑ベクトル |
|
文字行列 | 行列の各行は予測子変数の名前です。名前はPredictorNames のエントリに一致しなくてはなりません。文字行列の各行が同じ長さになるように、名前を余分な空白で埋めてください。 |
文字ベクトルのcell配列または字符串配列 | 配列の各要素は予測子変数の名前です。名前はPredictorNames のエントリに一致しなくてはなりません。 |
“所有” |
すべての予測子がカテゴリカルです。 |
既定では,予測子デ,タがテ,ブル(资源描述
)内にある場合,fitrlinear
は,その変数が逻辑ベクトル,直言ベクトル,文字配列,字符串配列または文字ベクトルの细胞配列のいずれかである場合に,変数を直言であると見なします。予測子デタが行列(X
)である場合,fitrlinear
はすべての予測子が連続的であると見なします。他の予測子をカテゴリカル予測子として指定するには,名前と値の引数“CategoricalPredictors”
を使用してそれらを指定します。
特定されたカテゴリカル予測子に対して,fitrlinear
はカテゴリカル変数に順序が設定されていないか順序が設定されているかに応じて,2つの異なる方式を使用してダミー変数を作成します。順序付けのないカテゴリカル変数の場合,fitrlinear
は,そのカテゴリカル変数の各レベルにいて1ず。順序付けされたカテゴリカル変数の場合,fitrlinear
は,カテゴリの数よりも1少ないダミ変数を作成します。詳細にいては,ダミ,変数の自動作成を参照してください。
例:“CategoricalPredictors”、“所有”
デ,タ型:单
|双
|逻辑
|字符
|字符串
|细胞
PredictorNames
- - - - - -予測子変数名予測子変数名。一意な名前の字符串配列または一意な文字ベクトルの单元格配列として指定します。“PredictorNames”
の機能は,学習デ,タの提供方法によって決まります。
X
とY
を指定した場合,“PredictorNames”
を使用してX
内の予測子変数に名前を割り当てることができます。
PredictorNames
内の名前の順序は,X
の予測子の順序に一致しなければなりません。X
が既定の方向(行に観測値,列に予測子)をもと仮定すると,PredictorNames {1}
はX (: 1)
の名前,PredictorNames {2}
はX (:, 2)
の名前(以下同様)になります。また,大小(X, 2)
と元素个数(PredictorNames)
は等しくなければなりません。
既定ではPredictorNames
は{x1, x2,…}
です。
资源描述
が与えられた場合,“PredictorNames”
を使用して学習に使用する予測子変数を選択できます。まり,fitrlinear
は,学習中にPredictorNames
の予測子変数と応答変数のみを使用します。
PredictorNames
はTbl.Properties.VariableNames
のサブセットでなければならず,応答変数の名前を含めることはできません。
既定では,すべての予測子変数の名前がPredictorNames
に格納されます。
“PredictorNames”
と公式
の両方ではなく,いずれか一方を使用して学習用の予測子を指定することをお勧めします。
例:PredictorNames,{‘SepalLength’,‘SepalWidth’,‘PetalLength’,‘PetalWidth}
デ,タ型:字符串
|细胞
ResponseName
- - - - - -応答変数名“Y”
(既定値) |文字ベクトル|字符串スカラ応答変数名。文字ベクトルまたは字符串スカラ,として指定します。
Y
を指定した場合,“ResponseName”
を使用して応答変数の名前を指定できます。
ResponseVarName
または公式
を指定した場合,“ResponseName”
を使用することはできません。
例:“ResponseName”、“响应”
デ,タ型:字符
|字符串
ResponseTransform
- - - - - -応答の変換“没有”
(既定値) |関数ハンドル応答の変換。“没有”
または関数ハンドルのいずれかとして指定します。既定の設定は“没有”
です。これは@ (y) y
,まり変換なしを表します。MATLAB関数またはユーザー定義関数の場合は、応答変換用の関数ハンドルを使用します。関数ハンドルは、ベクトル (元の応答値) を受け入れて同じサイズのベクトル (変換した応答値) を返さなければなりません。
例:Myfunction = @(y)exp(y)
を使用して,指数変換を入力ベクトルに適用する関数のハンドルを作成するとします。この場合,応答変換としてmyfunction ResponseTransform,
を指定できます。
デ,タ型:字符
|字符串
|function_handle
权重
- - - - - -観測値の重み资源描述
内の変数の名前観測値の重み。“重量”
と,正の数値ベクトル(または资源描述
に含まれる変数の名前)から構成されるコンマ区切りのペアとして指定します。ソフトウェアは,X
または资源描述
の各観測値に,权重
の対応する値で重みを付けます。权重
の長さは,X
または资源描述
の観測値の数と等しくなければなりません。
入力デ,タをテ,ブル资源描述
として指定した場合,权重
は数値ベクトルが含まれている资源描述
内の変数の名前にすることができます。この場合,权重
には文字ベクトルまたは字符串スカラ,を指定しなければなりません。たとえば,重みのベクトルW
が资源描述。W
として格納されている場合,' W '
として指定します。それ以外の場合,モデルを学習させるときに、资源描述
の列はW
を含めてすべて予測子として扱われます。
既定の設定では,权重
は的(n, 1)
です。n
はX
または资源描述
の観測値数です。
fitrlinear
は合計が1になるように重みを正規化します。
デ,タ型:单
|双
|字符
|字符串
CrossVal
- - - - - -交差検証フラグ“关闭”
(既定値) |“上”
交差検証フラグ。“Crossval”
と“上”
または“关闭”
から構成されるコンマ区切りのペアとして指定します。
“上”
を指定した場合,10分割の交差検証が実施されます。
この交差検証の設定をオバラドするには,名前と値のペアの引数CVPartition
、坚持
、KFold
のいずれかを使用します。交差検証済みモデルを作成するために使用できる交差検証の名前と値のペアの引数は,一度に1つだけです。
例:“Crossval”,“上”
CVPartition
- - - - - -交差検証分割[]
(既定値) |cvpartition
分割オブジェクト交差検証分割。“CVPartition”
とcvpartition
により作成されたcvpartition
分割オブジェクトで構成されるコンマ区切りのペアとして指定します。分割オブジェクトは交差検証のタイプおよび学習と検証セットのインデックス付けを指定します。
交差検証済みモデルを作成するために使用できるオプションは,'
CVPartition
'
、'
坚持
'
、'
KFold
'
のいずれかのみです。
坚持
- - - - - -ホ,ルドアウト検証の対象デ,タの比率ホ,ルドアウト検証に使用されるデ,タの比率。“坚持”
と,(0,1)の範囲内のスカラ,値から成るコンマ区切りのペアとして指定します。“坚持”,
を指定すると,次が実行されます。p
%のデ,タを検証デ,タとして無作為に予約し,残りのデ,タを使用してモデルを学習させるp
* 100
コンパクトな学習済みモデルを交差検証済みモデルの训练有素的
プロパティに格納する。
交差検証済みモデルを作成するために使用できるオプションは,'
CVPartition
'
、'
坚持
'
、'
KFold
'
のいずれかのみです。
例:“坚持”,0.1
デ,タ型:双
|单
KFold
- - - - - -分割の数10
(既定値) |1より大きい正の整数値交差検証分類器で使用する分割の数。“KFold”
と1より大きい正の整数値から構成されるコンマ区切りのペアとして指定します。たとえばKFold, k
を指定すると,次が実行されます。
デタを無作為にk個のセットに分割する
各セットにいて,そのセットを検定デタとして予約し,他のK - 1個のセットを使用してモデルに学習をさせる
k
個のコンパクトな学習済みモデルを,交差検証済みモデルの训练有素的
プロパティに含まれているk
行1列のcellベクトルのセルに格納する。
交差検証済みモデルを作成するために使用できるオプションは,'
CVPartition
'
、'
坚持
'
、'
KFold
'
のいずれかのみです。
例:“KFold”,8
デ,タ型:单
|双
BatchLimit
- - - - - -バッチの最大回数バッチを処理する最大回数。“BatchLimit”
と正の整数から構成されるコンマ区切りのペアとして指定します。BatchLimit
回のバッチが処理されると,最適化が終了します。
既定の設定では,次のようになります。
“BatchLimit”
と'
PassLimit
'
を指定した場合,処理する観測値の数が最も少なくなる引数が選択されます。
“BatchLimit”
を指定し,“PassLimit”
は指定しなかった場合,デ,タ全体を完全に1回通すのに十分な回数のバッチが処理されます。
例:“BatchLimit”,100年
デ,タ型:单
|双
BetaTolerance
- - - - - -線形係数およびバ@ @アス項の相対許容誤差1的军医
(既定値) |非負のスカラ線形係数およびバ▪▪アス項(切片)▪▪の相対許容誤差。“BetaTolerance”
と非負のスカラ,から構成されるコンマ区切りのペアとして指定します。
であるとします。これは、最適化反復 t における係数およびバイアス項のベクトルです。 で最適化が終了します。
解算器
で指定された最後のソルバ,で収束する場合,最適化が終了します。それ以外の場合,解算器
で指定された次のソルバ,が使用されます。
例:e-6 BetaTolerance, 1
デ,タ型:单
|双
NumCheckConvergence
- - - - - -次回の収束チェックの前にバッチを処理する回数次回の収束チェックの前にバッチを処理する回数。“NumCheckConvergence”
と正の整数から構成されるコンマ区切りのペアとして指定します。
バッチのサ化学键ズの指定に化学键いて,BatchSize
を参照してください。
既定の設定では,デ,タセット全体が通されるたびに約10回収束がチェックされます。
例:“NumCheckConvergence”,100年
デ,タ型:单
|双
PassLimit
- - - - - -最大通過回数1
(既定値) |正の整数デ,タを通す最大回数。“PassLimit”
と正の整数から構成されるコンマ区切りのペアとして指定します。
デ,タが完全に1回通されると,すべての観測値がfitrlinear
で処理されます。
デ,タが通される回数がPassLimit
になると,fitrlinear
は最適化を終了します。
'
BatchLimit
'
とPassLimit
を指定した場合,処理する観測値の数が最も少なくなる引数がfitrlinear
により選択されます。詳細は,アルゴリズムを参照してください。
例:“PassLimit”,5
デ,タ型:单
|双
ValidationData
- - - - - -最適化の収束を検出するための検証デ,タ最適化の収束を検出するための検証デ,タ。“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
- - - - - -勾配の絶対許容誤差1 e-6
(既定値) |非負のスカラ勾配の絶対許容誤差。“GradientTolerance”
と非負のスカラ,から構成されるコンマ区切りのペアとして指定します。GradientTolerance
は,解算器
の値が“蓄热”
、“lbfgs”
または“sparsa”
である場合に適用されます。
最適化反復tにおける係数およびバescアス項に関する目的関数の勾配ベクトルを とします。 で最適化が終了します。
BetaTolerance
も指定した場合,いずれかの終了条件がfitrlinear
で満たされると最適化が終了します。
解算器
で指定された最後のソルバ,でfitrlinear
が収束する場合,最適化が終了します。それ以外の場合,fitrlinear
は解算器
で指定された次のソルバ,を使用します。
例:GradientTolerance,每股收益
デ,タ型:单
|双
IterationLimit
- - - - - -最適化反復の最大回数1000
(既定値) |正の整数最適化反復の最大回数。“IterationLimit”
と正の整数から構成されるコンマ区切りのペアとして指定します。IterationLimit
は,解算器
の値が“蓄热”
、“lbfgs”
または“sparsa”
である場合に適用されます。
例:e7 IterationLimit, 1
デ,タ型:单
|双
BetaTolerance
- - - - - -線形係数およびバ@ @アス項の相対許容誤差1的军医
(既定値) |非負のスカラ線形係数およびバ▪▪アス項(切片)▪▪の相対許容誤差。“BetaTolerance”
と非負のスカラ,から構成されるコンマ区切りのペアとして指定します。
であるとします。これは、最適化反復 t における係数およびバイアス項のベクトルです。 で最適化が終了します。
DeltaGradientTolerance
も指定した場合,いずれかの終了条件が満たされると最適化が終了します。
解算器
で指定された最後のソルバ,で収束する場合,最適化が終了します。それ以外の場合,解算器
で指定された次のソルバ,が使用されます。
例:e-6 BetaTolerance, 1
デ,タ型:单
|双
DeltaGradientTolerance
- - - - - -勾配差分の許容誤差0.1
(既定値) |非負のスカラ上位および下位プ,ルのカル、シュ、キュ、ン、タッカ、(kkt)相補性条件違反値の間における勾配差分の許容誤差。“DeltaGradientTolerance”
と非負のスカラ,から構成されるコンマ区切りのペアとして指定します。DeltaGradientTolerance
は,解算器
の値が“双重”
である場合のみ適用されます。
KKT違反値の大きさがDeltaGradientTolerance
より小さい場合,fitrlinear
は最適化を終了させます。
解算器
で指定された最後のソルバ,でfitrlinear
が収束する場合,最適化が終了します。それ以外の場合,fitrlinear
は解算器
で指定された次のソルバ,を使用します。
例:依照“DeltaGapTolerance”,1
デ,タ型:双
|单
NumCheckConvergence
- - - - - -次回の収束チェックの前に処理するデ,タセット全体が通される回数5
(既定値) |正の整数次回の収束チェックの前に処理するデ,タセット全体が通される回数。“NumCheckConvergence”
と正の整数から構成されるコンマ区切りのペアとして指定します。
例:“NumCheckConvergence”,100年
デ,タ型:单
|双
PassLimit
- - - - - -最大通過回数10
(既定値) |正の整数デ,タを通す最大回数。“PassLimit”
と正の整数から構成されるコンマ区切りのペアとして指定します。
デ,タが完全に1回通されると,すべての観測値が処理されます。
デ,タが通される回数がPassLimit
になると,最適化が終了します。
例:“PassLimit”,5
デ,タ型:单
|双
ValidationData
- - - - - -最適化の収束を検出するための検証デ,タ最適化の収束を検出するための検証デ,タ。“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より大きい値を详细的
に指定します。
解算器
で指定された最後のソルバ,で収束する場合,最適化が終了します。それ以外の場合,解算器
で指定された次のソルバ,が使用されます。
既定の設定では,検証デ,タの損失を監視することによる収束の検出は行われません。
BetaTolerance
- - - - - -線形係数およびバ@ @アス項の相対許容誤差1的军医
(既定値) |非負のスカラ線形係数およびバ▪▪アス項(切片)▪▪の相対許容誤差。“BetaTolerance”
と非負のスカラ,から構成されるコンマ区切りのペアとして指定します。
であるとします。これは、最適化反復 t における係数およびバイアス項のベクトルです。 で最適化が終了します。
GradientTolerance
も指定した場合,いずれかの終了条件が満たされると最適化が終了します。
解算器
で指定された最後のソルバ,で収束する場合,最適化が終了します。それ以外の場合,解算器
で指定された次のソルバ,が使用されます。
例:e-6 BetaTolerance, 1
デ,タ型:单
|双
GradientTolerance
- - - - - -勾配の絶対許容誤差1 e-6
(既定値) |非負のスカラ勾配の絶対許容誤差。“GradientTolerance”
と非負のスカラ,から構成されるコンマ区切りのペアとして指定します。
最適化反復tにおける係数およびバescアス項に関する目的関数の勾配ベクトルを とします。 で最適化が終了します。
BetaTolerance
も指定した場合,いずれかの終了条件が満たされると最適化が終了します。
指定された最後のソルバ,で収束する場合,最適化が終了します。それ以外の場合,解算器
で指定された次のソルバ,が使用されます。
例:e-5 GradientTolerance, 1
デ,タ型:单
|双
HessianHistorySize
- - - - - -ヘッセ近似の履歴バッファのサズ15
(既定値) |正の整数ヘッセ近似の履歴バッファのサズ。“HessianHistorySize”
と正の整数から構成されるコンマ区切りのペアとして指定します。各反復において,最新のHessianHistorySize
回の反復の統計量を使用してヘッシアンが構成されます。
SpaRSAの場合,“HessianHistorySize”
はサポ,トされません。
例:“HessianHistorySize”,10
デ,タ型:单
|双
IterationLimit
- - - - - -最適化反復の最大回数1000
(既定値) |正の整数最適化反復の最大回数。“IterationLimit”
と正の整数から構成されるコンマ区切りのペアとして指定します。IterationLimit
は,解算器
の値が“蓄热”
、“lbfgs”
または“sparsa”
である場合に適用されます。
例:“IterationLimit”,500年
デ,タ型:单
|双
ValidationData
- - - - - -最適化の収束を検出するための検証デ,タ最適化の収束を検出するための検証デ,タ。“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
オブジェクトのベクトル最適化するパラメタ。“OptimizeHyperparameters”
と次のいずれかから構成されるコンマ区切りのペアとして指定します。
“没有”
-最適化を行いません。
“汽车”
- - - - - -{“λ”、“学习者”}
を使用します。
“所有”
—すべての使用可能パラメタを最適化します。
使用可能パラメ,タ,名のstring配列またはcell配列。
optimizableVariable
オブジェクトのベクトル。通常はhyperparameters
の出力です。
最適化では,パラメ,タ,を変化させることにより,fitrlinear
の交差検証損失(誤差)を最小化しようとします。交差検証のタesc escプおよびその他の最適化の側面を制御するには,名前と値のペアHyperparameterOptimizationOptions
を使用します。
メモ
“OptimizeHyperparameters”
の値は,他の名前と値のペアの引数を使用して設定した値より優先されます。たとえば,“OptimizeHyperparameters”
を“汽车”
に設定すると,“汽车”
の値が適用されます。
fitrlinear
では,以下のパラメ,タ,を使用できます。
既定以外のパラメ,タ,を設定するには,既定以外の値が含まれているoptimizableVariable
オブジェクトのベクトルを渡します。たとえば,以下のようにします。
负载carsmallParams =超参数(“fitrlinear”(功率、重量),MPG);参数(1)。Range = [1e-3,2e4];
OptimizeHyperparameters
の値として参数个数
を渡します。
既定では,コマンドラインに反復表示が表示され,最適化のハイパーパラメーターの個数に従ってプロットが表示されます。最適化とプロットにおける目的関数は,回帰の場合はLog(1 +交叉验证损失),分類の場合は誤分類率です。反復表示を制御するには、名前と値のペアの引数“HyperparameterOptimizationOptions”
の详细的
フィ,ルドを設定します。プロットを制御するには,名前と値のペアの引数“HyperparameterOptimizationOptions”
のShowPlots
フィ,ルドを設定します。
たとえば,線形回帰の最適化を参照してください。
例:“OptimizeHyperparameters”、“汽车”
HyperparameterOptimizationOptions
- - - - - -最適化のオプション最適化のオプション。“HyperparameterOptimizationOptions”
と構造体から構成されるコンマ区切りのペアとして指定します。この引数を指定すると,名前と値のペアの引数OptimizeHyperparameters
の効果が変化します。この構造体のフィ,ルドは,すべてオプションです。
フィ,ルド名 | 値 | 既定の設定 |
---|---|---|
优化器 |
|
“bayesopt” |
AcquisitionFunctionName |
オブジェクト関数のランタesc escムによって最適化が異なるので,名前に |
“expected-improvement-per-second-plus” |
MaxObjectiveEvaluations |
目的関数評価の最大数。 | “bayesopt” または“randomsearch” の場合は30. 、“gridsearch” の場合はグリッド全体 |
MaxTime |
制限時間。正の実数を指定します。制限時間の単位は, |
正 |
NumGridDivisions |
“gridsearch” における各次元の値の個数。値は、各次元の値の個数を表す正の整数のベクトル、またはすべての次元に適用されるスカラーが可能です。カテゴリカル変数の場合、このフィールドは無視されます。 |
10 |
ShowPlots |
プロットを表示するかどうかを示す論理値。真正的 の場合,最良の目的関数の値が反復回数に対してプロットされます。1,优化器 が“bayesopt” である場合,ShowPlots はパラメ,タ,に対する目的関数のモデルのプロットも行います。 |
真正的 |
SaveIntermediateResults |
优化器 が“bayesopt” である場合に結果を保存するかどうかを示す論理値。真正的 の場合,“BayesoptResults” という名前のワ,クスペ,ス変数が反復ごとに上書きされます。この変数はBayesianOptimization オブジェクトです。 |
假 |
详细的 |
コマンドラ@ @ンへの表示。
詳細にいては, |
1 |
UseParallel |
ベ@ @ズ最適化を並列実行するかどうかを示す論理値。並列実行には并行计算工具箱™が必要です。並列でのタイミングに再現性がないため,並列ベイズ最適化で再現性のある結果が生成されるとは限りません。詳細にいては,並列ベ@ @ズ最適化を参照してください。 | 假 |
重新分区 |
反復ごとに交差検証を再分割するかどうかを示す論理値。 分割ノesc escズが考慮されるので,通常は |
假 |
以下の3のフィルド名は1だけ使用できます。 | ||
CVPartition |
cvpartition によって作成されるcvpartition オブジェクト。 |
交差検証フィ,ルドが指定されていない場合“Kfold”,5 |
坚持 |
ホ,ルドアウトの比率を表す範囲(0,1) のスカラ。 |
|
Kfold |
1より大きい整数。 |
例:“HyperparameterOptimizationOptions”、结构(MaxObjectiveEvaluations, 60)
デ,タ型:结构体
Mdl
-学習済みの線形回帰モデルRegressionLinear
モデルオブジェクト|RegressionPartitionedLinear
交差検証済みモデルオブジェクト学習済みの線形回帰モデル。RegressionLinear
モデルオブジェクトまたはRegressionPartitionedLinear
交差検証済みモデルオブジェクトとして返されます。
名前と値のペアの引数KFold
、坚持
、CrossVal
、CVPartition
のいずれかを設定した場合,Mdl
はRegressionPartitionedLinear
交差検証済みモデルオブジェクトになります。それ以外の場合,Mdl
はRegressionLinear
モデルオブジェクトになります。
Mdl
のプロパティを参照するには,ドット表記を使用します。たとえば,推定された係数のベクトルまたは行列を表示するには、コマンド ウィンドウにMdl。β
と入力します。
メモ
他の回帰モデルとは異なり,また,メモリ消費を節約するため,学習データや最適化の詳細(収束履歴など)はRegressionLinear
およびRegressionPartitionedLinear
モデルオブジェクトに格納されません。
FitInfo
-最適化の詳細最適化の詳細。構造体配列として返されます。
各フィ,ルドには,最終的な値または名前と値のペアの引数の指定が格納されます。たとえば,客观的
は最適化が終了したときの目的関数の値です。多次元フィ,ルドの行はλ
の値に,列は解算器
の値に対応します。
次の表で,主なフィ,ルドを説明します。
フィ,ルド | 説明 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TerminationStatus |
|
||||||||||||||
FitTime |
秒単位の経過実時間 | ||||||||||||||
历史 |
各反復における最適化情報の構造体配列。
|
フィ,ルドにアクセスするには,ドット表記を使用します。たとえば,各反復における目的関数値のベクトルにアクセスするには、FitInfo.History.Objective
と入力します。
FitInfo
を確認して,収束が満足できるものであるかどうかを評価することをお勧めします。
HyperparameterOptimizationResults
—ハパパラメタの交差検証最適化BayesianOptimization
オブジェクト|ハパパラメタおよび関連する値のテブルハパパラメタの交差検証最適化。ハパパラメタおよび関連する値が含まれている表またはBayesianOptimization
オブジェクトとして返されます。“OptimizeHyperparameters”
の値が“没有”
ではない場合,出力は空以外です。出力値は,名前と値のペアの引数“HyperparameterOptimizationOptions”
の优化器
フィ,ルドの値に依存します。
优化器 フィ,ルドの値 |
HyperparameterOptimizationResults の値 |
---|---|
“bayesopt” (既定の設定) |
BayesianOptimization クラスのオブジェクト |
“gridsearch” または“randomsearch” |
使用したハイパーパラメーター,観測された目的関数の値(交差検証損失),および最低(最良)から最高(最悪)までの観測値の順位が格納されているテーブル |
メモ
学习者
が“leastsquares”
の場合,目的関数の損失項はmseの半分になります。既定の設定では,损失
はmseを返します。したがって,损失
を使用して再代入誤差または学習誤差をチェックした場合,损失
によって返されるmseは,FitInfo
の最適化結果や,详细的
を使用して正の詳細レベルを設定した場合にコマンドラ@ @ンに返される結果と異なります。
“ウォ,ムスタ,ト”は、収束時間を短縮するために最適化ル、チンに与えられるベ、タ係数およびバ、アス項の初期推定値です。
高次元の線形分類および回帰モデルでは比較的高速に目的関数を最小化できますが,精度が犠牲になり,予測子変数が数値のみに制限され,モデルがパラメーターに関して線形でなければなりません。予測子データセットが低~中次元の場合,または種類の異なる変数が混在している場合,適切な分類または回帰近似関数を使用する必要があります。次の表は,どの近似関数が低次元デ,タセットに適しているかを判断するために役立,ます。
近似させるモデル | 関数 | 主なアルゴリズムの違い |
---|---|---|
支持向量机 |
|
|
線形回帰 |
|
|
ロジスティック回帰 |
|
観測値が列に対応するように予測子行列を配置して“ObservationsIn”、“列”
を指定することをお勧めします。このようにすると,最適化実行時間が大幅に短縮される可能性があります。
予測子デ,タが高次元で正则化
値が“岭”
のときに最適化の精度を向上させるには,解算器
に次のいずれかのオプションを設定します。
“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
を試してください。たとえば,TruncationPeriod
を1
、10
に設定してからOne hundred.
に設定します。
効率のため,fitrlinear
は予測子デ,タを標準化しません。X
を標準化するには,次のように入力します。
X = bsxfun (@rdivide bsxfun (@minus X,意味着(X, 2)),性病(0,2));
このコ,ドでは,予測子が行,観測値が列に対応するようにX
が配置されている必要があります。また,メモリを節約するため、このコードは元の予測子データを標準化されたデータに置き換えます。
モデルに学習をさせた後で,新しいデタにいて応答を予測するc / c++コドを生成できます。C/ c++コ,ドの生成にはMATLAB编码器™が必要です。詳細については、コ,ド生成の紹介を参照してください。
ValidationData
を指定した場合,目的関数の最適化時に以下が行われます。
fitrlinear
は,現在のモデルを使用してValidationData
の検定損失を定期的に推定し,最小の推定値を追跡します。
fitrlinear
は,検定損失を推定するときに,推定値を最小の推定値と比較します。
以後の検定損失の推定値が最小推定値の5倍より大きくなった場合,fitrlinear
は最適化を終了します。
ValidationData
を指定して交差検証ルチン(CrossVal
、CVPartition
、坚持
またはKFold
)を実装した場合,次のようになります。
fitrlinear
は,学習デ,タの分割を使用してモデルに学習をさせます。目的関数の最適化時に,fitrlinear
は最適化を終了させるための他の可能な方法としてValidationData
を使用します(詳細にいては,前の項目を参照)。
終了条件が満たされると,fitrlinear
は最適化された線形係数および切片に基づいて学習済みのモデルを構築します。
K分割交差検証を実装した場合,fitrlinear
が網羅していない学習セット分割があると,fitrlinear
はステップ2に戻り,次の学習セット分割を使用して学習を行います。
それ以外の場合,fitrlinear
は学習を終了させ,交差検証済みのモデルを返します。
交差検証済みモデルの品質を判断できます。以下に例を示します。
ステップ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。
使用上の注意事項および制限事項:
fitrlinear
は高表格
デ,タをサポ,トしていません。
一部の名前と値のペアの引数は,电子邮件ンメモリの関数fitrlinear
と既定値および値が異なります。サポトされる名前と値のペアの引数および違いは次のとおりです。
‘ε’
“ObservationsIn”
- - - - - -“行”
のみをサポ,トします。
“λ”
- - - - - -“汽车”
(既定値)またはスカラ,を指定できます。
“学习者”
“正规化”
- - - - - -“岭”
のみをサポ,トします。
“规划求解”
- - - - - -“lbfgs”
のみをサポ,トします。
“详细”
-既定値は1
“β”
“偏见”
“FitBias”
- - - - - -真正的
のみをサポ,トします。
“重量”
-値は高配列でなければなりません。
“HessianHistorySize”
“BetaTolerance”
-既定値は1 e - 3
に緩和されます。
“GradientTolerance”
-既定値は1 e - 3
に緩和されます。
“IterationLimit”
-既定値は20.
に緩和されます。
“OptimizeHyperparameters”
- - - - - -“正规化”
パラメ,タ,の値は“岭”
でなければなりません。
“HyperparameterOptimizationOptions”
-交差検証として,高最適化では“坚持”
検証のみがサポ,トされます。既定では、データの 20% がホールドアウト検証データとして選択されて確保され、残りのデータがモデルの学習に使用されます。この引数を使用してホールドアウトの比率に別の値を指定できます。たとえば、データの 30% を検証データとして確保するには“HyperparameterOptimizationOptions”、结构(“抵抗”,0.3)
と指定します。
高配列の場合,fitrlinear
は各反復で損失と勾配の計算を高配列のさまざまな部分に分散させることによりLBFGSを実装します。他のソルバでは高配列を使用できません。
β
と偏见
の初期値が与えられなかった場合,fitrlinear
はデータの一部に対して局所的にモデルをあてはめ,平均化で係数を結合することにより,はじめにパラメーターの初期推定値を改善します。
詳細は,高配列を参照してください。
ハパパラメタの最適化を並列実行するには,この関数を呼び出すときに名前と値の引数“HyperparameterOptimizationOptions”、结构(UseParallel,真的)
を指定します。
並列的なハ▪▪パ▪▪パラメ▪タ▪の最適化の詳細に▪▪いては並列ベ@ @ズ最適化を参照してください。
並列計算の全般的な情報にいては,自動並列サポトを使用したmatlab関数の実行(并行计算工具箱)を参照してください。
fitrsvm
|fitlm
|套索
|脊
|fitclinear
|预测
|kfoldPredict
|kfoldLoss
|RegressionLinear
|RegressionPartitionedLinear
次のmatlabコマンドに対応するリンクがクリックされました。
コマンドをmatlabコマンドウィンドウに入力して実行してください。Webブラウザ,はMATLABコマンドをサポ,トしていません。
您也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。