必要な変換を実行する方法を理解しました。
入力が標準化され(ゼロ平均、単位分散)、応答が中央にあるとます。Xy
修正されたLARSアルゴリズムは、完全なLASSO正規化パスを提供することを知っています(cf. エフロン他によるオリジナル論文。
つまり、各反復で、前のアルゴリズムは、正規化された損失関数を最小化する最適なカップルを見つけます:
k(β∗,λ∗)
(β∗,λ∗)L(β,λ)=argmin(β,λ)L(β,λ)=∥y−Xβ∥22+λ∥β∥1=∑i=1N(yi−∑j=1pβjXij)2+λ∑j=1p|βj|
ステップの終わりにアクティブセットすべてのアクティブコンポーネント、KTT定常性条件を適用すると、
a={1,...,q}Akk
0=∂L∂βa(β∗,λ∗)=−2∑i=1NXia(yi−∑j=1qβ∗jXij)+λ∗ sign(β∗a)
つまり、
または行列表記(による除算/乗算は同じです)では、アクティブなコンポーネントについて次の方程式が満たされます:
λ∗=2∑Ni=1Xia(yi−∑qj=1β∗jXij)sign(β∗a)
sign(x)aλ∗=2 sign(β∗a)XTar
元の論文では、著者はLASSO問題のあらゆる解決策について、アクティブな回帰重み()の符号は、対応するアクティブな予測子と現在の回帰残差(との相関の符号と同一であるべきであると述べています)、は正でなければならないため、これは単なる論理です。したがって、次のように書くこともできます。β∗aXTarλ∗
λ∗=2|XTar|
さらに、最後のステップ(OLSフィット、)では、直交性補題によりことがわかります。私が見つけたMATLAB実装での中央値の使用は、すべてのアクティブなコンポーネントの数値エラーを「平均化」するための取り組みのようです。kβ∗=(XTX)−1XTyλ∗=0
λ∗=median(2|XTAkrAk|), ∀k>1
アクティブなコンポーネントがない場合(ステップ)にの値を計算するには、上記と同じトリックを使用できますが、すべての回帰重みがゼロであり、最初のコンポーネント符号のみがアクティブ(ステップ)が重要です。これにより、λk=1bk=2
λ∗=2 sign(β∗b)XTby
これは完全に同等です
λ∗=max(2|XTy|), for k=1
(i)回帰重みの符号に関する前述と同じ発言; (ii)LARSアルゴリズムは、アクティブセットに入る次のコンポーネントを、現在の残差と最も相関があるものとして決定します。これは、ステップで単にです。bk=1y