templateLinear
線形学習器テンプレート
説明
は、1 つ以上の名前と値の引数で指定された追加オプションを使用してテンプレートを返します。 t
= templateLinear(Name,Value
)
たとえば、正則化のタイプまたは強度や、目的関数の最小化に使用するソルバーを指定できます。学習器を指定しない場合、既定値 "svm"
が使用されます。
名前と値の引数 Type
を使用してモデルのタイプを指定する場合、コマンド ウィンドウに t
を表示すると、すべてのオプションは、名前と値の引数を使用して指定する場合を除き、空 ([]
) として示されます。モデルのタイプを指定しない場合、この表示では、空のオプションは非表示になります。学習中、空のオプションに既定値が使用されます。
例
マルチクラス線形分類モデルの学習
既定の線形学習器テンプレートを作成し、これを使用して複数のバイナリ線形分類モデルを含む ECOC モデルに学習をさせます。
NLP のデータ セットを読み込みます。
load nlpdata
X
は予測子データのスパース行列、Y
はクラス ラベルの categorical ベクトルです。データには 13 個のクラスが含まれています。
既定の線形学習器テンプレートを作成します。
t = templateLinear
t = Fit template for Linear. Learner: 'svm'
t
は線形学習器のテンプレート オブジェクトです。t
のプロパティはすべて空です。t
を学習関数 (ECOC マルチクラス分類用の fitcecoc
など) に渡す場合、空のプロパティはそれぞれの既定値に設定されます。たとえば、Type
は "classification"
に設定されます。既定値を変更するには、templateLinear
の名前と値の引数を参照してください。
複数のバイナリ線形分類モデルで構成される ECOC モデルに学習させます。これらの分類モデルは、ドキュメンテーション Web ページにおける単語の度数分布からソフトウェア製品を特定します。学習時間を短縮するため、予測子データを転置し、観測値が列に対応することを指定します。
X = X'; rng(1); % For reproducibility Mdl = fitcecoc(X,Y,'Learners',t,'ObservationsIn','columns')
Mdl = CompactClassificationECOC ResponseName: 'Y' ClassNames: [comm dsp ecoder fixedpoint hdlcoder phased physmod simulink stats supportpkg symbolic vision xpc] ScoreTransform: 'none' BinaryLearners: {78x1 cell} CodingMatrix: [13x78 double]
または、Learners","Linear"
を指定して、既定の線形分類モデルを含む ECOC モデルに学習をさせることができます。
メモリを節約するため、fitcecoc
は線形分類学習器を含む学習済みの ECOC モデルを CompactClassificationECOC
モデル オブジェクトで返します。
入力引数
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みます。
例: 'Learner','logistic','Regularization','lasso','CrossVal','on'
は、LASSO ペナルティがあるロジスティック回帰と 10 分割の交差検証を実装するように指定します。
Lambda
— 正則化項の強度
'auto'
(既定値) | 非負のスカラー | 非負値のベクトル。
正則化項の強度。'Lambda'
と 'auto'
、非負のスカラーまたは非負値のベクトルから構成されるコンマ区切りのペアとして指定します。
'auto'
の場合、Lambda
= 1/n です。交差検証の名前と値のペアの引数 (
CrossVal
など) を指定した場合、n は分割内観測値の数です。それ以外の場合、n は学習標本のサイズです。
非負値のベクトルの場合、
templateLinear
は、Lambda
の異なる値それぞれについて目的関数の最適化を逐次的に昇順で実行します。Solver
が'sgd'
または'asgd'
でRegularization
が'lasso'
の場合、templateLinear
が前の係数の推定値を次の最適化反復のウォーム スタートとして使用することはありません。それ以外の場合、templateLinear
はウォーム スタートを使用します。Regularization
が'lasso'
の場合、templateLinear
がLambda
の以後の値を使用して最適化を行うときに、係数の推定値 0 は値が保持されます。templateLinear
は、指定された正則化強度ごとに係数の推定値を返します。
例: 'Lambda',10.^(-(10:-2:2))
データ型: char
| string
| double
| single
Learner
— 線形学習器のタイプ
"svm"
(既定値) | "logistic"
| "leastsquares"
線形学習器のタイプ。"svm"
、"logistic"
、または "leastsquares"
として指定します。
次の表では、 です。
β は p 個の係数のベクトルです。
x は p 個の予測子変数による観測値です。
b はスカラー バイアスです。
値 | アルゴリズム | 応答の範囲 | 損失関数 |
---|---|---|---|
"svm" | サポート ベクター マシン (分類または回帰) | 分類: y ∊ {–1,1}。陽性クラスの場合は 1、それ以外の場合は –1 回帰: y ∊ (-∞,∞) | 分類: ヒンジ 回帰: イプシロン不感応 |
"logistic" | ロジスティック回帰 (分類のみ) | y ∊ {–1,1}。陽性クラスの場合は 1、それ以外の場合は –1 | 逸脱度 (ロジスティック) |
"leastsquares" | 通常の最小二乗による線形回帰 (回帰のみ) | y ∊ (-∞,∞) | 平均二乗誤差 (MSE) |
例: "Learner","logistic"
Regularization
— 複雑度ペナルティのタイプ
'lasso'
| 'ridge'
複雑度ペナルティのタイプ。'Regularization'
と 'lasso'
または 'ridge'
から構成されるコンマ区切りのペアとして指定します。
最小化のための目的関数は、平均損失関数 (Learner
を参照) と次の表の正則化項を加算することにより作成されます。
値 | 説明 |
---|---|
'lasso' | LASSO (L1) ペナルティ: |
'ridge' | リッジ (L2) ペナルティ: |
正則化項の強度 (式の λ) を指定するには、Lambda
を使用します。
バイアス項 (β0) は正則化ペナルティから除外されます。
Solver
が 'sparsa'
の場合、Regularization
の既定値は 'lasso'
になります。それ以外の場合は、既定値は 'ridge'
です。
例: 'Regularization','lasso'
Solver
— 目的関数の最小化手法
'sgd'
| 'asgd'
| 'dual'
| 'bfgs'
| 'lbfgs'
| 'sparsa'
| string 配列 | 文字ベクトルの cell 配列
目的関数の最小化手法。'Solver'
と次の表の値をもつ文字ベクトル、string スカラー、string 配列、または文字ベクトルの cell 配列から構成されるコンマ区切りのペアとして指定します。
値 | 説明 | 制限 |
---|---|---|
'sgd' | 確率的勾配降下法 (SGD) [4][2] | |
'asgd' | 平均化確率的勾配降下法 (ASGD) [7] | |
'dual' | SVM 用の双対 SGD [1][6] | Regularization は 'ridge' 、Learner は 'svm' でなければなりません。 |
'bfgs' | Broyden-Fletcher-Goldfarb-Shanno 準ニュートン アルゴリズム (BFGS) [3] | X の次元数が非常に多い場合は非効率的です。Regularization は 'ridge' でなければなりません。 |
'lbfgs' | メモリ制限 BFGS (LBFGS) [3] | Regularization は 'ridge' でなければなりません。 |
'sparsa' | 可分近似によるスパース再構成 (SpaRSA) [5] | Regularization は 'lasso' でなければなりません。 |
指定する項目によって、内容は次のように変わります。
予測子データ セットに 100 個以下の予測子変数が格納されている場合にリッジ ペナルティ (
Regularization
を参照) を指定すると、既定のソルバーは'bfgs'
になります。予測子データ セットに 100 個より多い予測子変数が格納されている場合に SVM モデル (
Learner
を参照) とリッジ ペナルティを指定すると、既定のソルバーは'dual'
になります。予測子データ セットに 100 個以下の予測子変数が格納されている場合に LASSO ペナルティを指定すると、既定のソルバーは
'sparsa'
になります。
それ以外の場合、既定のソルバーは 'sgd'
になります。既定のソルバーはハイパーパラメーターの最適化を実行するときに変更できることに注意してください。詳細については、ハイパーパラメーターの最適化で使用される線形学習器ソルバーを正則化手法に基づいて決定を参照してください。
ソルバー名の string 配列または cell 配列を指定する場合、Lambda
のそれぞれの値に対して、ソルバー j の解がソルバー j + 1 のウォーム スタートとして使用されます。
例: {'sgd' 'lbfgs'}
は、オブジェクティブを解決するために SGD を適用し、解を LBFGS のウォーム スタートとして使用します。
ヒント
SGD および ASGD は他のソルバーより高速に目的関数を解決できるのに対し、LBFGS および SpaRSA は他のソルバーより正確な解が得られます。
{'sgd' 'lbfgs'}
や{'sgd' 'sparsa'}
のようにソルバーを組み合わせると、速度と精度の最適化のバランスをとることができます。SGD と ASGD のいずれかを選択する場合、以下を考慮します。
SGD は反復あたりの時間が短くなりますが、収束するまでに必要な反復回数が多くなります。
ASGD は収束するまでに必要な反復回数が少なくなりますが、反復あたりの時間が長くなります。
予測子データが高次元で
Regularization
が'ridge'
の場合、Solver
に次の組み合わせのいずれかを設定します。'sgd'
'asgd'
'dual'
(Learner
が'svm'
の場合)'lbfgs'
{'sgd','lbfgs'}
{'asgd','lbfgs'}
{'dual','lbfgs'}
(Learner
が'svm'
の場合)
他の組み合わせも設定できますが、多くの場合、不十分な精度の解となります。
予測子データが中~低次元で
Regularization
が'ridge'
の場合、Solver
を'bfgs'
に設定します。Regularization
が'lasso'
の場合、Solver
に次の組み合わせのいずれかを設定します。'sgd'
'asgd'
'sparsa'
{'sgd','sparsa'}
{'asgd','sparsa'}
例: 'Solver',{'sgd','lbfgs'}
Beta
— 線形係数の初期推定値
zeros(p
,1)
(既定値) | 数値ベクトル | 数値行列
p
,1)線形係数の初期推定値 (β)、'Beta'
と p 次元の数値ベクトルまたは p 行 L 列の数値行列から構成されるコンマ区切りのペアとして指定します。p はカテゴリカル変数用にダミー変数が作成された後の予測子変数の数 (詳細については、CategoricalPredictors
を参照)、L は正則化強度値の数 (詳細については、Lambda
を参照) です。
p 次元ベクトルを指定した場合、次のプロセスを使用して目的関数が L 回最適化されます。
初期値として
Beta
、正則化強度としてLambda
の最小値を使用して最適化を行う。前回の最適化で生成された推定値をウォーム スタートとして使用し、
Lambda
内の次に小さい値を正則化強度として使用して、再度最適化を行う。Lambda
の値をすべて使用するまでステップ 2 を繰り返す。
p 行 L 列の行列を指定した場合、目的関数が L 回最適化されます。反復
j
では、初期値としてBeta(:,
が使用され、j
)Lambda
を昇順で並べ替えた後で正則化強度としてLambda(
が使用されます。j
)
'Solver','dual'
を設定した場合、Beta
は無視されます。
データ型: single
| double
Bias
— 切片の初期推定値
数値スカラー | 数値ベクトル
切片の初期推定値 (b)。'Bias'
と数値スカラーまたは L 次元の数値ベクトルから構成されるコンマ区切りのペアとして指定します。L は正則化強度値の数です (詳細については、Lambda
を参照)。
スカラーを指定した場合、次のプロセスを使用して目的関数が L 回最適化されます。
初期値として
Bias
、正則化強度としてLambda
の最小値を使用して最適化を行う。生成された推定値を次回の最適化の反復でウォーム スタートとして使用し、
Lambda
内の次に小さい値を正則化強度として使用する。Lambda
の値をすべて使用するまでステップ 2 を繰り返す。
L 次元ベクトルを指定した場合、目的関数が L 回最適化されます。反復
j
では、初期値としてBias(
が使用され、j
)Lambda
を昇順で並べ替えた後で正則化強度としてLambda(
が使用されます。j
)既定の設定では、次のようになります。
Learner
が'logistic'
の場合、gj はY(
が陽性クラスであれば 1、そうでなければ -1 になります。j
)Bias
は、学習の場合は g の、交差検証の場合は分割内観測値の加重平均になります。Learner
が'svm'
の場合、Bias
は 0 になります。
データ型: single
| double
FitBias
— 線形モデルの切片使用フラグ
true
(既定値) | false
線形モデルの切片使用フラグ。'FitBias'
と true
または false
から構成されるコンマ区切りのペアとして指定します。
値 | 説明 |
---|---|
true | 線形モデルにバイアス項 b が追加され、推定されます。 |
false | 推定時に b = 0 に設定されます。 |
例: 'FitBias',false
データ型: logical
PostFitBias
— 最適化後に線形モデルの切片を当てはめるフラグ
false
(既定値) | true
最適化後に線形モデルの切片を当てはめるフラグ。'PostFitBias'
と true
または false
から構成されるコンマ区切りのペアとして指定します。
値 | 説明 |
---|---|
false | 最適化時にバイアス項 b と係数 β が推定されます。 |
true | b を推定するため、以下が行われます。
|
true
を指定する場合、FitBias
は true でなければなりません。
例: 'PostFitBias',true
データ型: logical
Type
— 線形モデルのタイプ
"classification"
| "regression"
R2023b 以降
線形モデルのタイプ。"classification"
または "regression"
として指定します。
値 | 説明 |
---|---|
"classification" | 分類線形学習器テンプレートを作成します。Type を "classification" と指定しない場合、近似関数 fitcecoc 、testckfold 、および fitsemigraph に t を渡すと、この値が設定されます。 |
"regression" | 回帰線形学習器テンプレートを作成します。Type を "regression" と指定しない場合、近似関数 directforecaster に t を渡すと、この値が設定されます。 |
例: "Type","classification"
データ型: char
| string
Verbose
— 詳細レベル
0
(既定値) | 1
詳細レベル。'Verbose'
と 0
または 1
のいずれかから構成されるコンマ区切りのペアとして指定します。Verbose
は、コマンド ラインにおける診断情報の表示を制御します。
値 | 説明 |
---|---|
0 | templateLinear は診断情報を表示しません。 |
1 | templateLinear は、目的関数の値、勾配の大きさ、および他の診断情報を定期的に表示します。 |
例: 'Verbose',1
データ型: single
| double
Epsilon
— イプシロン不感応区間の幅の半分
iqr(Y)/13.49
(既定値) | 非負のスカラー値
イプシロン不感応区間の幅の半分。非負のスカラー値を指定します。この引数は、サポート ベクター マシン学習器にのみ適用されます。
Epsilon
の既定値は、iqr(Y)/13.49
です。これは、応答変数 Y
の四分位数間範囲を使用した標準偏差の推定値です。iqr(Y)
がゼロに等しい場合、Epsilon
の既定値は 0.1 になります。
例: "Epsilon",0.3
データ型: single
| double
BatchSize
— ミニバッチのサイズ
正の整数
ミニバッチのサイズ。'BatchSize'
と正の整数から構成されるコンマ区切りのペアとして指定します。各反復では、学習データの観測値を BatchSize
個使用して勾配が推定されます。
予測子データが数値行列の場合、既定値は
10
です。予測子データがスパース行列の場合、既定値は
max([10,ceil(sqrt(ff))])
です。ここで、ff = numel(X)/nnz(X)
(X
の "スパース性係数") です。
例: 'BatchSize',100
データ型: single
| double
LearnRate
— 学習率
正のスカラー
学習率。'LearnRate'
と正のスカラーで構成される、コンマ区切りのペアとして指定します。LearnRate
は、劣勾配をスケールすることによって最適化のステップ サイズを制御します。
Regularization
が'ridge'
の場合、LearnRate
は初期学習率 γ0 を指定します。templateLinear
は、次の式を使用して、反復 t、γt についての学習率を決定します。Regularization
が'lasso'
の場合、すべての反復についてLearnRate
は一定になります。
既定の設定では、LearnRate
は 1/sqrt(1+max((sum(X.^2,obsDim))))
です。obsDim
は、観測値が予測子データ X
の列から構成されている場合は 1
、それ以外の場合は 2
です。
例: 'LearnRate',0.01
データ型: single
| double
OptimizeLearnRate
— 学習率を減少させるフラグ
true
(既定値) | false
発散 (最小値の限度を超える状態) が検出された場合に学習率を減少させるフラグ。'OptimizeLearnRate'
と true
または false
から構成されるコンマ区切りのペアとして指定します。
OptimizeLearnRate
が 'true'
の場合、次のようになります。
数回の最適化反復について、
LearnRate
を学習率として使用して最適化が開始される。目的関数の値が増加した場合、現在の学習率の半分の値を使用して再開される。
目的関数が減少するまで、ステップ 2 が繰り返される。
例: 'OptimizeLearnRate',true
データ型: logical
TruncationPeriod
— LASSO 切り捨て実行間のミニバッチの回数
10
(既定値) | 正の整数
LASSO 切り捨て実行間のミニバッチの回数。'TruncationPeriod'
と正の整数から構成されるコンマ区切りのペアとして指定します。
切り捨て実行の後で、ソフトしきい値が線形係数に適用されます。つまり、k = TruncationPeriod
回のミニバッチが処理された後で、次を使用して係数推定 j が切り捨てられます。
SGD の場合、 はミニバッチを次を満たす k の回数処理した後の係数 j の推定値です。γt は反復 t における学習率です。λ は
Lambda
の値です。ASGD の場合、 はミニバッチを次を満たす k の回数処理した後の係数 j の平均推定値です。
Regularization
が 'ridge'
の場合、TruncationPeriod
は無視されます。
例: 'TruncationPeriod',100
データ型: single
| double
BatchLimit
— バッチの最大回数
正の整数
バッチを処理する最大回数。'BatchLimit'
と正の整数から構成されるコンマ区切りのペアとして指定します。BatchLimit
回のバッチが処理されると、最適化が終了します。
例: 'BatchLimit',100
データ型: single
| double
BetaTolerance
— 線形係数およびバイアス項の相対許容誤差
1e-4
(既定値) | 非負のスカラー
線形係数およびバイアス項 (切片) の相対許容誤差。'BetaTolerance'
と非負のスカラーから構成されるコンマ区切りのペアとして指定します。
であるとします。これは、最適化反復 t における係数およびバイアス項のベクトルです。 で最適化が終了します。
Solver
で指定された最後のソルバーで収束する場合、最適化が終了します。それ以外の場合、Solver
で指定された次のソルバーが使用されます。
例: 'BetaTolerance',1e-6
データ型: single
| double
NumCheckConvergence
— 次回の収束チェックの前にバッチを処理する回数
正の整数
次回の収束チェックの前にバッチを処理する回数。'NumCheckConvergence'
と正の整数から構成されるコンマ区切りのペアとして指定します。
バッチのサイズの指定について、BatchSize
を参照してください。
既定の設定では、データ セット全体が通されるたびに約 10 回収束がチェックされます。
例: 'NumCheckConvergence',100
データ型: single
| double
PassLimit
— 最大通過回数
1
(既定値) | 正の整数
データを通す最大回数。'PassLimit'
と正の整数から構成されるコンマ区切りのペアとして指定します。
データが完全に 1 回通されると、すべての観測値が処理されます。
データが通される回数が PassLimit
になると、最適化が終了します。
BatchLimit
を指定した場合、templateLinear
では、BatchLimit
と PassLimit
の引数のうち、処理する観測値の数が少なくなる方が使用されます。
例: 'PassLimit',5
データ型: single
| double
BetaTolerance
— 線形係数およびバイアス項の相対許容誤差
1e-4
(既定値) | 非負のスカラー
線形係数およびバイアス項 (切片) の相対許容誤差。'BetaTolerance'
と非負のスカラーから構成されるコンマ区切りのペアとして指定します。
であるとします。これは、最適化反復 t における係数およびバイアス項のベクトルです。 で最適化が終了します。
DeltaGradientTolerance
も指定した場合、いずれかの終了条件が満たされると最適化が終了します。
Solver
で指定された最後のソルバーで収束する場合、最適化が終了します。それ以外の場合、Solver
で指定された次のソルバーが使用されます。
例: 'BetaTolerance',1e-6
データ型: single
| double
DeltaGradientTolerance
— 勾配差分の許容誤差
1
(既定値) | 非負のスカラー
上位および下位プールのカルーシュ・キューン・タッカー (KKT) 相補性条件違反値の間における勾配差分の許容誤差。非負のスカラーとして指定します。
KKT 違反値の大きさが
DeltaGradientTolerance
より小さい場合、最適化が終了します。Solver
で指定された最後のソルバーで収束する場合、最適化が終了します。それ以外の場合、Solver
で指定された次のソルバーが使用されます。
例: 'DeltaGradientTolerance',1e-2
データ型: double
| single
NumCheckConvergence
— 次回の収束チェックの前に処理するデータ セット全体が通される回数
5
(既定値) | 正の整数
次回の収束チェックの前に処理するデータ セット全体が通される回数。'NumCheckConvergence'
と正の整数から構成されるコンマ区切りのペアとして指定します。
例: 'NumCheckConvergence',100
データ型: single
| double
PassLimit
— 最大通過回数
10
(既定値) | 正の整数
データを通す最大回数。'PassLimit'
と正の整数から構成されるコンマ区切りのペアとして指定します。
データが完全に 1 回通されると、すべての観測値が処理されます。
データが通される回数が PassLimit
になると、最適化が終了します。
例: 'PassLimit',5
データ型: single
| double
BetaTolerance
— 線形係数およびバイアス項の相対許容誤差
1e-4
(既定値) | 非負のスカラー
線形係数およびバイアス項 (切片) の相対許容誤差。非負のスカラーとして指定します。
であるとします。これは、最適化反復 t における係数およびバイアス項のベクトルです。 で最適化が終了します。
GradientTolerance
も指定した場合、いずれかの終了条件が満たされると最適化が終了します。
Solver
で指定された最後のソルバーで収束する場合、最適化が終了します。それ以外の場合、Solver
で指定された次のソルバーが使用されます。
例: 'BetaTolerance',1e-6
データ型: single
| double
GradientTolerance
— 勾配の絶対許容誤差
1e-6
(既定値) | 非負のスカラー
勾配の絶対許容誤差。非負のスカラーとして指定します。
最適化反復 t における係数およびバイアス項に関する目的関数の勾配ベクトルを とします。 で最適化が終了します。
BetaTolerance
も指定した場合、いずれかの終了条件が満たされると最適化が終了します。
指定された最後のソルバーで収束する場合、最適化が終了します。それ以外の場合、Solver
で指定された次のソルバーが使用されます。
例: 'GradientTolerance',1e-5
データ型: single
| double
HessianHistorySize
— ヘッセ近似の履歴バッファーのサイズ
15
(既定値) | 正の整数
ヘッセ近似の履歴バッファーのサイズ。'HessianHistorySize'
と正の整数から構成されるコンマ区切りのペアとして指定します。各反復において、最新の HessianHistorySize
回の反復の統計量を使用してヘッシアンが構成されます。
SpaRSA の場合、'HessianHistorySize'
はサポートされません。
例: 'HessianHistorySize',10
データ型: single
| double
IterationLimit
— 最適化反復の最大回数
1000
(既定値) | 正の整数
最適化反復の最大回数。'IterationLimit'
と正の整数から構成されるコンマ区切りのペアとして指定します。IterationLimit
は、Solver
の値が 'bfgs'
、'lbfgs'
または 'sparsa'
である場合に適用されます。
例: 'IterationLimit',500
データ型: single
| double
出力引数
t
— 線形学習器テンプレート
テンプレート オブジェクト
線形分類モデルまたは線形回帰モデルの学習に適した線形学習器テンプレート。テンプレート オブジェクトとして返されます。学習中、空のオプションに既定値が使用されます。
詳細
ウォーム スタート
"ウォーム スタート" は、収束時間を短縮するために最適化ルーチンに与えられるベータ係数およびバイアス項の初期推定値です。
ヒント
観測値が列に対応するように予測子行列を配置して
'ObservationsIn','columns'
を指定することをお勧めします。このようにすると、最適化実行時間が大幅に短縮される可能性があります。予測子データに含まれている観測値の数が少なく、予測子変数の数が多い場合、次のようにします。
'PostFitBias',true
を指定します。ソルバーが SGD または ASGD の場合、
PassLimit
を 1 より大きい正の整数 (5 や 10 など) に設定します。このように設定すると、多くの場合に精度が向上します。
ソルバーが SGD または ASGD の場合、
BatchSize
は収束速度に影響を与えます。BatchSize
が小さすぎる場合、最小値を計算するための反復回数は多くなりますが、反復ごとの勾配の計算時間は短くなります。BatchSize
が大きすぎる場合、最小値を計算するための反復回数は少なくなりますが、反復ごとの勾配の計算時間は長くなります。
学習率 (
LearnRate
を参照) が大きいと、最小値への収束が高速になりますが、発散 (最小値の限度を超える状態) の可能性があります。学習率が小さいと最小値への収束が保証されますが、終了までに時間がかかる可能性があります。Regularization
が'lasso'
の場合は、さまざまな値のTruncationPeriod
を試してください。たとえば、TruncationPeriod
を1
、10
に設定してから100
に設定します。効率のため、予測子データは標準化されません。予測子データ (
X
) を標準化して観測値が列に対応するように配置するには、次のように入力します。X = normalize(X,2);
観測値が行に対応するように配置する場合は、次のように入力します。
X = normalize(X);
メモリを節約するため、このコードは元の予測子データを標準化されたデータに置き換えます。
参照
[1] Hsieh, C. J., K. W. Chang, C. J. Lin, S. S. Keerthi, and S. Sundararajan. “A Dual Coordinate Descent Method for Large-Scale Linear SVM.” Proceedings of the 25th International Conference on Machine Learning, ICML ’08, 2001, pp. 408–415.
[2] Langford, J., L. Li, and T. Zhang. “Sparse Online Learning Via Truncated Gradient.” J. Mach. Learn. Res., Vol. 10, 2009, pp. 777–801.
[3] Nocedal, J. and S. J. Wright. Numerical Optimization, 2nd ed., New York: Springer, 2006.
[4] Shalev-Shwartz, S., Y. Singer, and N. Srebro. “Pegasos: Primal Estimated Sub-Gradient Solver for SVM.” Proceedings of the 24th International Conference on Machine Learning, ICML ’07, 2007, pp. 807–814.
[5] Wright, S. J., R. D. Nowak, and M. A. T. Figueiredo. “Sparse Reconstruction by Separable Approximation.” Trans. Sig. Proc., Vol. 57, No 7, 2009, pp. 2479–2493.
[6] Xiao, Lin. “Dual Averaging Methods for Regularized Stochastic Learning and Online Optimization.” J. Mach. Learn. Res., Vol. 11, 2010, pp. 2543–2596.
[7] Xu, Wei. “Towards Optimal One Pass Large Scale Learning with Averaged Stochastic Gradient Descent.” CoRR, abs/1107.2490, 2011.
拡張機能
tall 配列
メモリの許容量を超えるような多数の行を含む配列を計算します。
以下は、線形モデル テンプレートと tall 配列を fitcecoc
に渡してモデルに学習をさせる場合の使用上の注意および制限です。
tall 配列を処理する場合、以下の名前と値のペアの引数は既定値が異なります。
'Lambda'
—'auto'
(既定値) またはスカラーが可能'Regularization'
—'ridge'
のみをサポート'Solver'
—'lbfgs'
のみをサポート'FitBias'
—true
のみをサポート'Verbose'
— 既定値は1
'BetaTolerance'
— 既定値は1e–3
に緩和される'GradientTolerance'
— 既定値は1e–3
に緩和される'IterationLimit'
— 既定値は20
に緩和される
tall 配列が含まれている
templateLinear
オブジェクトをfitcecoc
で使用する場合、使用可能なソルバーは LBFGS だけです。各反復で損失と勾配の計算を tall 配列のさまざまな部分に分散させることにより、 LBFGS が実装されます。Beta
とBias
ローカルにモデルを当てはめ、平均化で係数を結合することにより、パラメーターの初期推定が改善されます。
詳細は、tall 配列を参照してください。
バージョン履歴
R2016a で導入R2023b: 回帰学習器テンプレートのサポート
templateLinear
で回帰学習器テンプレートの作成がサポートされます。関数を呼び出すときに名前と値の引数 Type
を "regression" として指定します。回帰学習器テンプレートを作成する場合、サポート ベクター マシン学習器の名前と値の引数 Epsilon
を追加で指定できます。
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)