ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

lassoPlot

LASSO 近似のトレース プロット

構文

lassoPlot(B)
lassoPlot(B,FitInfo)
lassoPlot(B,FitInfo,Name,Value)
[ax,figh] = lassoPlot(___)

説明

lassoPlot(B) は、B の L1 ノルムに対して、B の値のトレース プロットを作成します。

lassoPlot(B,FitInfo) は、FitInfo のデータ型および PlotType 名前と値のペアがあれば、その値に応じたタイプのプロットを作成します。

lassoPlot(B,FitInfo,Name,Value) は、1 つまたは複数の Name,Value のペアの引数で指定された追加オプションを使用して、プロットを作成します。

[ax,figh] = lassoPlot(___) は、前のいずれかの入力構文について、プロット軸へのハンドル ax と Figure ウィンドウへのハンドル figh を返します。

入力引数

B

関数 lasso または lassoglm から返される回帰近似のシーケンスの係数。BpNLambda 列の行列です。ここで p は予測子の数で、B の各列は、関数 lasso が 1 つの Lambda ペナルティ値を使用して計算した一連の係数です。

FitInfo

プロットを制御する情報:

  • FitInfo は、特に関数 lasso または lassoglm から返される構造体です。lassoPlotPlotType の名前と値のペアに基づいてプロットを作成します。

  • FitInfo はベクトルです — lassoPlotFitInfo の値からプロットの x 軸を形成します。FitInfo の長さは B の列の数に等しくなければなりません。

名前と値のペアの引数

オプションの引数 Name,Value のコンマ区切りペアを指定します。Name は引数名で、Value は対応する値です。Name は引用符で閉じなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

'Parent'

プロットを描画する軸。

既定値: 新規プロット

'PlotType'

ベクトルまたは構造体 FitInfo を指定するときのプロット タイプ。

PlotTypeプロット
'L1'lassoPlot は、B の係数の L1 ノルムから x 軸を作成します。プロットの最上部の x 軸には、B の非ゼロ係数の数である自由度 (df) が含まれています。


'Lambda'

この値を選択する場合、FitInfo は構造体でなければなりません。

lassoPlot は、FitInfoLambda フィールドから x 軸を作成します。プロットの最上部の x 軸には、B の非ゼロ係数の数である自由度 (df) が含まれています。


'CV'

この値を選択する場合、FitInfo は交差検証済みの構造体でなければなりません。

  • Lambda に対して、lassoPlot は、その Lambda の値を使用して lasso によってあてはめたモデルの新しいデータに対する平均二乗予測誤差の推定値をプロットします。

  • lassoPlot は推定値の誤差範囲をプロットします。

交差検証された構造体 FitInfo を含めた場合、lassoPlot は 2 つの特定の Lambda 値も緑と青の破線で示します。

  • 緑の破線は、交差検証平均二乗誤差 (MSE) が最小になる Lambda の値を示します。

  • 青の破線は、最小の MSE から 1 標準誤差以内にある最大の Lambda を示します。この Lambda の値では、最もスパースなモデルの MSE が比較的小さくなります。

Figure の凡例で各プロットについてラベルを表示するには、コマンド ウィンドウで legend('show') と入力します。

既定値: 'L1'

'PredictorNames'

B の各係数にラベルを付けるための string 配列、または文字ベクトルの cell 配列。PredictorNames の長さが B の行の数より小さい場合、残りのラベルには既定値が付加されます。

lassoPlotFitInfoPredictorNames を使用するのは、次の場合だけです。

  • PredictorNames 名前と値のペアを含む lasso への呼び出しをもつ FitInfo を作成した。

  • PredictorNames 名前と値のペアなしlassoPlot を呼び出す。

  • FitInfolassoPlot 呼び出しに含める。

例については、既定のプロット タイプでの LASSO プロットを参照してください。

既定値: {'B1','B2',...}

'XScale'

  • 線形 x 軸の 'linear'

  • 対数スケール x 軸の 'log'

既定値: 'linear' ('CV' プロット タイプの 'log' を除く)

出力引数

ax

プロットの軸へのハンドル (座標軸の外観 (MATLAB) を参照)。

figh

Figure ウィンドウへのハンドル (特殊オブジェクトの識別子 (MATLAB) を参照)。

すべて折りたたむ

標本データを読み込みます。

load acetylene

交互作用のある LASSO 近似の計画行列を準備します。

X = [x1 x2 x3];
D = x2fx(X,'interaction');
D(:,1) = []; % No constant term

関数 x2fx は、定数項、線形項、交互作用項という順序で 2 次モデルを返します。つまり、定数項、x1x2x3x1.*x2x1.*x3x2.*x3 という順序になります。

lasso を使用してデータの正則化モデルを近似します。

B = lasso(D,y);

名前と値のペア PredictorNames を使用して、係数にラベルが付けられた LASSO 近似をプロットします。

lassoPlot(B,'PredictorNames',{'x1','x2','x3','x1.*x2','x1.*x3','x2.*x3'});
legend('show','Location','NorthWest') % Show legend

それぞれの線は、単一の予測子変数 (x1x2x3x1.*x2x1.*x3x2.*x3) に対する B 内の値のトレースを表します。

トレース プロットのデータ ヒントを表示します。データ点上にカーソルを移動させると、データ ヒントが表示されます。

データ ヒントに表示される情報は、選択した係数の名前と近似値、選択した係数を含む一連の係数の L1 ノルム、および対応する Lambda のインデックスです。

標本データを読み込みます。

load acetylene

交互作用のある LASSO 近似のデータを準備します。

X = [x1 x2 x3];
D = x2fx(X,'interaction');
D(:,1) = []; % No constant term

lasso を使用してデータの正則化モデルを近似します。

[B,FitInfo] = lasso(D,y);

Lambda プロット タイプと対数スケーリングで近似をプロットします。

lassoPlot(B,FitInfo,'PlotType','Lambda','XScale','log');

さまざまな正則化レベルで交差検証誤差を視覚的に調べます。

標本データを読み込みます。

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);

交差検証した近似をプロットします。

lassoPlot(B,FitInfo,'PlotType','CV');
legend('show') % Show legend

緑の円と点線は、交差検証誤差が最小になる Lambda を示しています。青の円と点線は、最小交差検証誤差に 1 標準偏差を加算した点を示しています。

R2011b で導入