このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
lasso
線形モデルに対する LASSO または Elastic Net 正則化
説明
は、1 つ以上の名前と値のペアの引数で指定された追加オプションを使用して、正則化された回帰を当てはめます。たとえば B
= lasso(X
,y
,Name,Value
)'Alpha',0.5
は、パラメーター Alpha
が 0.5 に等しい Elastic Net を正則化の手法として設定します。
例
LASSO 正則化の使用による冗長な予測子の削除
冗長な予測子があるデータセットを作成し、lasso
を使用してこれらの予測子を識別します。
100 個の 5 次元正規変数が含まれている行列 X
を作成します。X
の 2 つの成分のみから応答ベクトル y
を作成し、小量のノイズを追加します。
rng default % For reproducibility X = randn(100,5); weights = [0;2;0;-3;0]; % Only two nonzero coefficients y = X*weights + randn(100,1)*0.1; % Small added noise
既定の LASSO 近似を作成します。
B = lasso(X,y);
B
内の 25 番目の Lambda
の値について係数ベクトルを求めます。
B(:,25)
ans = 5×1
0
1.6093
0
-2.5865
0
lasso
は冗長予測子を識別して、削除します。
LASSO 正則化を使用した切片項のない線形モデルの作成
予測子変数を X
、応答変数を として標本データを作成します。
rng('default') % For reproducibility X = rand(100,1); y = 2*X + randn(100,1)/10;
正則化の値を指定し、切片項のない回帰モデルの係数を求めます。
lambda = 1e-03; B = lasso(X,y,'Lambda',lambda,'Intercept',false)
Warning: When the 'Intercept' value is false, the 'Standardize' value is set to false.
B = 1.9825
予測値 (線) に対して実数値 (点) をプロットします。
scatter(X,y) hold on x = 0:0.1:1; plot(x,x*B) hold off
交差検証された当てはめの使用による冗長な予測子の削除
冗長な予測子があるデータセットを作成し、交差検証された lasso
を使用してこれらの予測子を識別します。
100 個の 5 次元正規変数が含まれている行列 X
を作成します。X
の 2 つの成分から応答ベクトル y
を作成し、小量のノイズを追加します。
rng default % For reproducibility X = randn(100,5); weights = [0;2;0;-3;0]; % Only two nonzero coefficients y = X*weights + randn(100,1)*0.1; % Small added noise
予測子変数にラベルを付け、10 分割交差検証を使用して、LASSO 近似を作成します。
[B,FitInfo] = lasso(X,y,'CV',10,'PredictorNames',{'x1','x2','x3','x4','x5'});
最小の交差検証平均二乗誤差 (MSE) に対応するモデル内の変数を表示します。
idxLambdaMinMSE = FitInfo.IndexMinMSE; minMSEModelPredictors = FitInfo.PredictorNames(B(:,idxLambdaMinMSE)~=0)
minMSEModelPredictors = 1x2 cell
{'x2'} {'x4'}
最小の MSE から 1 標準誤差以内にある、最もスパースなモデル内の変数を表示します。
idxLambda1SE = FitInfo.Index1SE; sparseModelPredictors = FitInfo.PredictorNames(B(:,idxLambda1SE)~=0)
sparseModelPredictors = 1x2 cell
{'x2'} {'x4'}
この例では、lasso
は 2 つのモデルについて同じ予測子を識別し、冗長な予測子を削除します。
交差検証した近似での LASSO プロット
さまざまな正則化レベルで交差検証誤差を視覚的に調べます。
標本データを読み込みます。
load acetylene
定数項を持たない、交互作用がある計画行列を作成します。
X = [x1 x2 x3]; D = x2fx(X,"interaction"); D(:,1) = []; % No constant term
10 分割交差検証を使用して LASSO 近似を作成します。結果をプロットできるように、出力 FitInfo
を含めます。
rng default % For reproducibility [B,FitInfo] = lasso(D,y,CV=10);
交差検証した近似をプロットします。緑の円と点線は、交差検証誤差が最小になる Lambda
を示しています。青の円と点線は、最小交差検証誤差に 1 標準誤差を加算した点を示しています。
lassoPlot(B,FitInfo,PlotType="CV"); legend("show")
Elastic Net 正則化の使用による値の予測
lasso
と Elastic Net 法を使用して、学生の試験の点数を予測します。
examgrades
データセットを読み込みます。
load examgrades
X = grades(:,1:4);
y = grades(:,5);
データを学習セットとテスト セットに分割します。
n = length(y);
c = cvpartition(n,'HoldOut',0.3);
idxTrain = training(c,1);
idxTest = ~idxTrain;
XTrain = X(idxTrain,:);
yTrain = y(idxTrain);
XTest = X(idxTest,:);
yTest = y(idxTest);
10 分割交差検証と Alpha
= 0.75 の Elastic Net 法を使用して、正則化された線形回帰モデルの係数を求めます。平均二乗誤差 (MSE) が最小 MSE から 1 標準誤差以内になる最大の Lambda
の値を使用します。
[B,FitInfo] = lasso(XTrain,yTrain,'Alpha',0.75,'CV',10); idxLambda1SE = FitInfo.Index1SE; coef = B(:,idxLambda1SE); coef0 = FitInfo.Intercept(idxLambda1SE);
テスト データについて試験の点数を予測します。基準線を使用して、予測された値を実際の試験の成績と比較します。
yhat = XTest*coef + coef0; hold on scatter(yTest,yhat) plot(yTest,yTest) xlabel('Actual Exam Grades') ylabel('Predicted Exam Grades') hold off
LASSO を当てはめるための相関行列の使用
N
個の p
次元正規変数が含まれている行列 X
を作成します。ここで N
は大きく、p
= 1000 です。モデル y = beta0 + X*p
から加法性ノイズとともに応答ベクトル y
を作成します。ここで beta0
は定数です。
rng default % For reproducibility N = 1e4; % Number of samples p = 1e3; % Number of features X = randn(N,p); beta = randn(p,1); % Multiplicative coefficients beta0 = randn; % Additive term y = beta0 + X*beta + randn(N,1); % Last term is noise
既定の LASSO 近似を作成します。作成時間を計ります。
B = lasso(X,y,"UseCovariance",false); % Warm up lasso for reliable timing data tic B = lasso(X,y,"UseCovariance",false); timefalse = toc
timefalse = 30.7600
共分散行列を使用して LASSO 当てはめを作成します。作成時間を計ります。
B2 = lasso(X,y,"UseCovariance",true); % Warm up lasso for reliable timing data tic B2 = lasso(X,y,"UseCovariance",true); timetrue = toc
timetrue = 0.6863
共分散行列を使用した当てはめ時間は、使用しない場合の時間よりはるかに小さいです。共分散行列を使用した結果の高速化係数を表示します。
speedup = timefalse/timetrue
speedup = 44.8201
返された係数 B
および B2
が似ていることを確認します。
norm(B-B2)/norm(B)
ans = 5.2508e-15
結果は実質的に同一です。
入力引数
X
— 予測子データ
数値行列
予測子データ。数値行列として指定します。各行は 1 つの観測値を、各列は 1 つの予測子変数を表します。
データ型: single
| double
y
— 応答データ
数値ベクトル
応答データ。数値ベクトルを指定します。y
の長さは n です。n は X
の行数です。応答 y(i)
は X
の i 番目の行に対応します。
データ型: single
| double
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みます。
例: lasso(X,y,'Alpha',0.75,'CV',10)
は、10 分割交差検証を使用して Elastic Net 正則化を実行します。名前と値のペアの引数 'Alpha',0.75
は、Elastic Net 最適化で使用されるパラメーターを設定します。
AbsTol
— 絶対許容誤差
1e–4
(既定値) | 正のスカラー
ADMM アルゴリズムの収束の判定に使用する絶対許容誤差。'AbsTol'
と正のスカラーから構成されるコンマ区切りのペアとして指定します。このアルゴリズムは、係数ベクトルの連続する推定値の差異が AbsTol
未満の量になると収束します。
メモ
このオプションは、tall 配列に対して lasso
を使用する場合のみ適用されます。詳細は、拡張機能を参照してください。
例: 'AbsTol',1e–3
データ型: single
| double
Alpha
— リッジ最適化に対する LASSO 最適化の重み
1
(既定値) | 正のスカラー
リッジ (L2) 最適化に対する LASSO (L1) 最適化の重み。'Alpha'
と区間 (0,1]
にある正のスカラー値から構成されるコンマ区切りのペアとして指定します。値 Alpha = 1
は LASSO 回帰を表します。0
に近い Alpha
はリッジ回帰に近づき、他の値は Elastic Net 最適化を表します。Elastic Netを参照してください。
例: 'Alpha',0.5
データ型: single
| double
B0
— ADMM アルゴリズムにおける x の係数の初期値
ゼロから成るベクトル (既定値) | 数値ベクトル
ADMM アルゴリズムにおける x の係数の初期値。'B0'
と数値ベクトルから構成されるコンマ区切りのペアとして指定します。
メモ
このオプションは、tall 配列に対して lasso
を使用する場合のみ適用されます。詳細は、拡張機能を参照してください。
データ型: single
| double
CacheSize
— メガバイト単位の共分散行列のサイズ
1000
(既定値) | 正のスカラー | 'maximal'
メガバイト単位の共分散行列のサイズ。正のスカラーまたは 'maximal'
を指定します。関数 lasso
は、引数 UseCovariance
が true
または 'auto'
の場合、当てはめに共分散行列を使用できます。
UseCovariance
が true
または 'auto'
であり、CacheSize
が 'maximal'
である場合、lasso
は利用可能なメモリを超える共分散行列を割り当てようとする場合があります。この場合、MATLAB® はエラーを生成します。
例: 'CacheSize','maximal'
データ型: double
| char
| string
CV
— 平均二乗誤差を推定するための交差検証の指定
'resubstitution'
(既定値) | 正の整数スカラー | cvpartition
オブジェクト
平均二乗誤差 (MSE) を推定するための交差検証の指定。'CV'
と次のいずれかから構成されるコンマ区切りのペアとして指定します。
'resubstitution'
—lasso
は、交差検証を使用せずに、X
とy
を使用してモデルを当てはめ、MSE を予測します。正の整数スカラー
K
—lasso
はK
分割交差検証を使用します。cvpartition
オブジェクトcvp
—lasso
は、cvp
で表された交差検証法を使用します。'leaveout'
またはカスタムの'holdout'
分割はlasso
と一緒には使用できません。
例: 'CV',3
DFmax
— 非ゼロ係数の最大個数
Inf
(既定値) | 正の整数スカラー
モデル内の非ゼロ係数の最大個数。'DFmax'
と正の整数スカラーから構成されるコンマ区切りのペアとして指定します。lasso
は、この基準を満たす Lambda
の値のみについて結果を返します。
例: 'DFmax',5
データ型: single
| double
Intercept
— 切片項のあるモデルを当てはめるためのフラグ
true
(既定値) | false
切片項のあるモデルを当てはめるためのフラグは、'Intercept'
と、true
または false
のいずれかで構成されるコンマ区切りのペアとして指定します。既定値は true
であり、モデルに切片項が含まれることを示しています。Intercept
が false
の場合、返される切片値は 0 になります。
例: 'Intercept',false
データ型: logical
Lambda
— 正則化係数
非負のベクトル
正則化係数。'Lambda'
と非負値のベクトルから構成されるコンマ区切りのペアとして指定します。LASSOを参照してください。
Lambda
を指定しなかった場合、lasso
は非 Null モデルを提供するLambda
の最大値を計算します。この場合、LambdaRatio
はシーケンスの最小値/最大値の比を示し、NumLambda
はベクトルの長さを示します。Lambda
を指定した場合、lasso
はLambdaRatio
とNumLambda
を無視します。Standardize
がtrue
である場合、Lambda
は、平均がゼロ、分散が 1 になるようにX
のデータを標準化した状態でモデルを当てはめるために使用された値の集合です。
既定は、最大値だけが B
= 0
になる可能性がある、NumLambda
の値の等比数列です。
例: 'Lambda',linspace(0,1)
データ型: single
| double
LambdaRatio
— Lambda
の最大値に対する最小値の比率
1e–4
(既定値) | 正のスカラー
Lambda
を指定しなかった場合の、Lambda
の最大値に対する最小値の比率。'LambdaRatio'
と正のスカラーから構成されるコンマ区切りのペアとして指定します。
LambdaRatio
= 0 に設定した場合、lasso
は Lambda
の値について既定の数列を生成し、最小値を 0
に置き換えます。
例: 'LambdaRatio',1e–2
データ型: single
| double
MCReps
— 交差検証用のモンテカルロ反復回数
1
(既定値) | 正の整数スカラー
交差検証用のモンテカルロ反復回数。'MCReps'
と正の整数スカラーから構成されるコンマ区切りのペアとして指定します。
CV
が'resubstitution'
であるか'resubstitution'
タイプのcvpartition
である場合、MCReps
は1
でなければなりません。CV
が'holdout'
タイプのcvpartition
である場合、MCReps
は1
より大きくなければなりません。CV
が'kfold'
タイプのカスタムのcvpartition
である場合、MCReps
は1
でなければなりません。
例: 'MCReps',5
データ型: single
| double
Options
— 並列的な交差検証と乱数ストリームを指定するためのオプション
構造体
並列的な交差検証と乱数ストリームを指定するためのオプション。'Options'
と構造体から構成されるコンマ区切りのペアとして指定します。並列計算には Parallel Computing Toolbox™ が必要です。
statset
を使用して Options
構造体を作成します。このオプションのフィールドは以下です。
UseParallel
— 並列計算する場合はtrue
に設定します。既定の設定はfalse
です。UseSubstreams
— 再生成可能な方法で並列計算する場合はtrue
に設定します。再現性を得るには、'mlfg6331_64'
や'mrg32k3a'
などのサブストリームを許可するタイプにStreams
を設定します。既定の設定はfalse
です。Streams
—RandStream
オブジェクトまたはそのようなオブジェクトで構成される cell 配列。Streams
を指定しなかった場合、lasso
は既定のストリームを使用します。
例: 'Options',statset('UseParallel',true)
データ型: struct
PredictorNames
— 予測子変数の名前
{}
(既定値) | string 配列 | 文字ベクトルの cell 配列
X
に現れる順序で並んでいる、予測子変数の名前。'PredictorNames'
と string 配列、または文字ベクトルの cell 配列から構成されるコンマ区切りのペアとして指定します。
例: 'PredictorNames',{'x1','x2','x3','x4'}
データ型: string
| cell
RelTol
— 座標降下アルゴリズムの収束しきい値
1e–4
(既定値) | 正のスカラー
座標降下アルゴリズム[3]の収束しきい値。'RelTol'
と正のスカラーから構成されるコンマ区切りのペアとして指定します。係数ベクトルの連続推定が、L2 ノルムにおいて RelTol
未満の相対的な量の差異がある場合、このアルゴリズムは終了します。
例: 'RelTol',5e–3
データ型: single
| double
Rho
— 拡張ラグランジュ パラメーター
正のスカラー
ADMM アルゴリズムのための拡張ラグランジュ パラメーター ρ。'Rho'
と正のスカラーから構成されるコンマ区切りのペアとして指定します。既定は自動選択です。
メモ
このオプションは、tall 配列に対して lasso
を使用する場合のみ適用されます。詳細は、拡張機能を参照してください。
例: 'Rho',2
データ型: single
| double
Standardize
— モデル当てはめ前の予測子データ標準化のフラグ
true
(既定値) | false
モデルを当てはめる前の予測子データ X
の標準化フラグ。'Standardize'
と true
または false
から構成されるコンマ区切りのペアで指定します。Standardize
が true
である場合、平均がゼロ、分散が 1 になるように X
のデータがスケーリングされます。Standardize
は、標準化されたスケールと元のスケールのどちらで正則化を係数に適用するかに影響を与えます。結果は、常に元のデータ スケールで与えられます。
Intercept
が false
である場合、指定した Standardize
の値にかかわらず、ソフトウェアによって Standardize
は false
に設定されます。
Intercept
が true
である場合、X
と y
は常にセンタリングされます。
例: 'Standardize',false
データ型: logical
UseCovariance
— 当てはめへの共分散行列の使用の指示
'auto'
(既定値) | logical スカラー
当てはめへの共分散行列の使用の指示。'auto'
または logical スカラーとして指定します。
'auto'
にすると、lasso
は、観測値の数が問題の変数の個数を超えた場合、当てはめに共分散行列を使用しようとします。この試行は、メモリが不足している場合、失敗する可能性があります。lasso
が当てはめに共分散行列を使用したかどうかを調べるには、FitInfo
出力のUseCovariance
フィールドを確認します。true
にすると、必要なサイズがCacheSize
を超えない限り、lasso
は当てはめに共分散行列を使用します。必要な共分散行列のサイズがCacheSize
を超えると、lasso
は警告を発して、当てはめに共分散行列を使用しません。false
にすると、lasso
は当てはめに共分散行列を使用しません。
当てはめに共分散行列を使用する方が使用しない場合より高速ですが、必要なメモリが増える可能性があります。LASSO を当てはめるための相関行列の使用を参照してください。高速化が数値安定性にマイナスの影響を与える場合があります。詳細については、座標降下アルゴリズムを参照してください。
例: 'UseCovariance',true
データ型: logical
| char
| string
U0
— スケーリングされた双対変数の初期値
ゼロから成るベクトル (既定値) | 数値ベクトル
ADMM アルゴリズムにおけるスケーリングされた双対変数 u の初期値。'U0'
と数値ベクトルから構成されるコンマ区切りのペアとして指定します。
メモ
このオプションは、tall 配列に対して lasso
を使用する場合のみ適用されます。詳細は、拡張機能を参照してください。
データ型: single
| double
Weights
— 観測値の重み
1/n*ones(n,1)
(既定値) | 非負のベクトル
観測値の重み。'Weights'
と非負のベクトルから構成されるコンマ区切りのペアとして指定します。Weights
の長さは n です。n は X
の行数です。関数 lasso
は、合計が 1
になるように Weights
をスケーリングします。
データ型: single
| double
出力引数
FitInfo
— モデルの当てはめ情報
構造体
線形モデルの当てはめ情報。次の表に記載されているフィールドが含まれている構造体として返されます。
FitInfo のフィールド | 説明 |
---|---|
Intercept | 各線形モデルの切片の項 β0、1 行 L 列のベクトル |
Lambda | 昇順の Lambda パラメーター、1 行 L 列のベクトル |
Alpha | Alpha パラメーターの値、スカラー値 |
DF | Lambda の各値の B 内の非ゼロ係数の数、1 行 L 列のベクトル |
MSE | 平均二乗誤差 (MSE)、1 行 L 列のベクトル |
PredictorNames | PredictorNames パラメーターの値、文字ベクトルの cell 配列として格納 |
UseCovariance | 当てはめに共分散行列が使用されたかどうかを示す logical 値。共分散が計算され、使用された場合、true になります。そうでない場合は false です。 |
交差検証を行うように名前と値のペアの引数 CV
を設定した場合、構造体 FitInfo
には次の追加フィールドが含まれます。
FitInfo のフィールド | 説明 |
---|---|
SE | 交差検証中に計算される各 Lambda の MSE の標準誤差、1 行 L 列のベクトル |
LambdaMinMSE | MSE が最小である Lambda の値、スカラー |
Lambda1SE | MSE と最小 MSE の差が 1 標準誤差以内になる最大の Lambda の値、スカラー |
IndexMinMSE | 値 LambdaMinMSE の Lambda のインデックス、スカラー |
Index1SE | 値 Lambda1SE の Lambda のインデックス、スカラー |
詳細
LASSO
指定の λ 値 (非負のパラメーター) の場合、lasso
は次の問題を解決します。
N は、観測数です。
yi は、観測値 i の応答データです。
xi はデータ (観測値 i における長さ p のベクトル) です。
λ は
Lambda
の 1 つの値に対応する非負の正則化パラメーターです。パラメーター β0 と β はそれぞれ、スカラーと長さ p のベクトルです。
λ が増えると、β の非ゼロの要素が減ります。
LASSO の問題は、Elastic Net のアルゴリズムとは対照的に β の L1 ノルムと関わっています。
Elastic Net
厳密に 0 と 1 の間にある α および非負の λ について、Elastic Net は次の問題を解きます。
ここで
α = 1 の場合、Elastic Net は LASSO と同じになります。α の他の値の場合、ペナルティ項 Pα(β) が β の L1 ノルムと β の L2 ノルムの 2 乗との間を内挿します。α が 0 に向かって縮小するにつれて、Elastic Net は ridge
回帰に近づきます。
アルゴリズム
座標降下アルゴリズム
lasso
は、Friedman、Tibshirani および Hastie [3]に基づく "座標降下" という名前の効率的な手続きによって、多くの λ の値を同時に当てはめます。この手続きには、当てはめが共分散行列を使用するかどうかに応じて、2 つの主要なコード パスがあります。名前と値の引数 UseCovariance
で、この選択を変更できます。
lasso
が共分散行列を使用して、N
個のデータ点と D
個の予測子を当てはめる場合、この当てはめにはおよそ D*D
の計算量があります。共分散行列がない場合、計算量はおよそ N*D
です。したがって一般的には、共分散行列を使用すると、N > D
場合、高速化する場合があります。引数 UseCovariance
の既定の設定 'auto'
は、こちらを選択しています。共分散行列を使用した場合、lasso
は、そうでない場合よりも大きな数を減算します。このため、数値安定性が低下する可能性があります。これらのアルゴリズムの違いの詳細については、[3]を参照してください。時間と精度の違いの比較は、LASSO を当てはめるための相関行列の使用を参照してください。
ADMM アルゴリズム
tall 配列を処理する場合、lasso
は交互方向乗数法 (ADMM) [5] に基づくアルゴリズムを使用します。ここで使用している表記法は参考文献と同じです。この手法では、次の形式の問題を解きます。
を最小化する
という条件を適用する
この表記法を使用すると、LASSO 回帰問題は次のようになります。
を最小化する
という条件を適用する
損失関数 は 2 次なので、このアルゴリズムで実行される反復の更新では、単一の係数行列と複数の右辺を使用して連立一次方程式を解くことになります。このアルゴリズムでは、各反復で次の更新が実行されます。
A はデータセット (tall 配列)、x は係数、ρ はペナルティ パラメーター (拡張ラグランジュ パラメーター)、b は応答 (tall 配列)、S はソフトしきい値演算子です。
係数行列 が対称な正定値なので、lasso
はコレスキー分解を使用して連立一次方程式を解きます。 は反復間で変化しないので、コレスキー分解が反復間でキャッシュされます。
A と b は tall 配列ですが、これらは および という項のみに現れます。この 2 つの行列乗算の結果は小さいためメモリに収まるので、これらは事前に計算され、反復間の反復更新は完全にメモリ内で実行されます。
参照
[1] Tibshirani, R. “Regression Shrinkage and Selection via the Lasso.” Journal of the Royal Statistical Society. Series B, Vol. 58, No. 1, 1996, pp. 267–288.
[2] Zou, H., and T. Hastie. “Regularization and Variable Selection via the Elastic Net.” Journal of the Royal Statistical Society. Series B, Vol. 67, No. 2, 2005, pp. 301–320.
[3] Friedman, J., R. Tibshirani, and T. Hastie. “Regularization Paths for Generalized Linear Models via Coordinate Descent.” Journal of Statistical Software. Vol. 33, No. 1, 2010. https://www.jstatsoft.org/v33/i01
[4] Hastie, T., R. Tibshirani, and J. Friedman. The Elements of Statistical Learning. 2nd edition. New York: Springer, 2008.
[5] Boyd, S. “Distributed Optimization and Statistical Learning via the Alternating Direction Method of Multipliers.” Foundations and Trends in Machine Learning. Vol. 3, No. 1, 2010, pp. 1–122.
拡張機能
tall 配列
メモリの許容量を超えるような多数の行を含む配列を計算します。
この関数は、メモリ超過のデータに対し tall 配列をサポートしますが、いくつかの制限があります。
tall 配列の場合、
lasso
は ADMM (交互方向乗数法) に基づくアルゴリズムを使用します。Eelastic Net はサポートされません。パラメーター
'Alpha'
は常に 1 です。交差検証 (パラメーター
'CV'
) はサポートされません。これには、関連パラメーター'MCReps'
が含まれます。出力
FitInfo
に追加フィールド'SE'
、'LambdaMinMSE'
、'Lambda1SE'
、'IndexMinMSE'
および'Index1SE'
は含まれません。ADMM アルゴリズムに適用されるオプションが含まれていないので、パラメーター
'Options'
はサポートされません。名前と値のペアの引数を使用して ADMM アルゴリズムを調整できます。以下の名前と値のペアの引数がサポートされます。
'Lambda'
'LambdaRatio'
'NumLambda'
'Standardize'
'PredictorNames'
'RelTol'
'Weights'
以下は、ADMM アルゴリズムを制御するための追加の名前と値のペアの引数です。
'Rho'
— 拡張ラグランジュ パラメーター ρ。既定値は自動選択です。'AbsTol'
— 収束の判別に使用される絶対許容誤差。既定値は1e–4
です。'MaxIter'
— 最大反復回数。既定値は1e4
です。'B0'
— 係数 x の初期値。既定値は 0 のベクトルです。'U0'
— スケーリングされた双対変数 u の初期値。既定値は 0 のベクトルです。
詳細は、tall 配列を参照してください。
自動並列サポート
Parallel Computing Toolbox™ を使用して自動的に並列計算を実行することで、コードを高速化します。
並列実行するには、この関数を呼び出すときに名前と値の引数 Options
を指定し、statset
を使用してオプション構造体の UseParallel
フィールドを true
に設定します。
"Options",statset("UseParallel",true)
並列計算の詳細については、自動並列サポートを使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2011b で導入
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)