エラスティックネット
scikit-learn ではエラスティックネットによる線形回帰、ロジスティック回帰、線形サポートベクターマシンの正則化に対応している。
SVEN はサポートベクトルエラスティックネットによる正則化を MATLAB 上で実装したソフトウェアである。このソルバーは SVM による二項分類でエラスティックネットの正則化でのインスタンスを削減し、MATLAB の SVM ソルバーを使用して正則化後の解を求める。SVM は容易に並列化できるため、最新のハードウェア上では Glmnet より高速なコードが実現できる。
SpaSM はMatlab上でエラスティックネット正則化回帰を含むスパース線形回帰、分類、主成分分析を実装している。
Apache Spark は機械学習ライブラリMLlibでエラスティックネット回帰をサポートしている。この方法は一般化線形回帰クラスのパラメータとして利用することができる。
SAS (ソフトウェア)(英語版) SAS プロシージャーの Glmselectでは、モデル選択における正則化でエラスティックネットをサポートしている。
"Glmnet: Lasso and elastic-net regularized generalized linear models" は Rソースパッケージや MATLAB のツールボックスとして実装されたソフトウェアである。これは周期的に正則化パスに沿って計算される座標降下法を用いて、l1(ラッソ回帰)、l2(リッジ回帰)を混合した正則化項(エラスティックネット)による一般化線形モデルの推定を行う高速アルゴリズムが実装されている。
JMP (ソフトウェア)(英語版)は、最適化モデルによる一般化回帰パーソナリティを使用したエラスティックネットを搭載している。
"pensim: Simulation of high-dimensional data and parallelized repeated penalized regression" では、l パラメータの並列化 "2D" チューニングを実装し、予測精度の向上させることができる手法としてエラスティックネットが用いられている。
エラスティックネットは、ラッソ回帰のペナルティ関数: ‖ β ‖ 1 = ∑ j = 1 p | β j | {\displaystyle \|\beta \|_{1}=\textstyle \sum _{j=1}^{p}|\beta _{j}|} の特性によって生じる欠点を解消した正則化手法である。
ラッソ回帰のペナルティ関数によって生じる欠点は具体例として、共変量 p と標本数 n のとき、共変量が高次元で標本数の少ないデータの場合、ラッソ回帰では多くとも標本数までしか共変量を選択することができない。また高い相関を持つ共変量の組み合わせのとき、ラッソ回帰内のペナルティ関数が共変量の1つの変数だけに影響され、他の変数が影響しなくなることがある。この欠点を解消するため、エラスティックネットでは、ラッソ回帰の正則化項にリッジ回帰の正則化項のペナルティ関数 ( ‖ β ‖ 2 {\displaystyle \|\beta \|^{2}} ) を新たに加えた形式となる。エラスティックネットにおける推定値は次のように定義する:
β ^ ≡ argmin β ( ‖ y − X β ‖ 2 + λ 2 ‖ β ‖ 2 + λ 1 ‖ β ‖ 1 ) {\displaystyle {\hat {\beta }}\equiv {\underset {\beta }{\operatorname {argmin} }}(\|y-X\beta \|^{2}+\lambda _{2}\|\beta \|^{2}+\lambda _{1}\|\beta \|_{1})} 。
2次の正則化項の導入により損失関数は強凸性となり、損失関数の最小値は一意に決まる。エラスティックネットでは λ 1 = λ , λ 2 = 0 {\displaystyle \lambda _{1}=\lambda ,\lambda _{2}=0} または、 λ 1 = 0 , λ 2 = λ {\displaystyle \lambda _{1}=0,\lambda _{2}=\lambda } のとき、それぞれラッソ回帰とリッジ回帰として正則化することができる。一方、パラメータを適切に設定したエラスティックネットでの正規化は λ 2 {\displaystyle \lambda _{2}} を固定してリッジ回帰の正則化項の係数を決定してから、ラッソ回帰の正則化項の係数を決定する2段階の手順で推定量を求める。この推定方法では、推定量が約2倍の速さで収縮するため、バイアスが大きくなり、予測精度が悪くなる。予測精度を向上させるために、論文著者は推定係数を ( 1 + λ 2 ) {\displaystyle (1+\lambda _{2})} 倍することで、エラスティックネットの係数を再スケーリングしている。
エラスティックネットによる正則化が行われている例:
サポートベクターマシン
距離学習
ポートフォリオ最適化
がん予測