LASSO も SVR もスパースモデリング!

シェアする

特に少数のサンプルでクラス分類モデルや回帰モデルを構築するときに、スパースモデリング (sparse modeling) が注目されています。Sparse を英辞郎で調べると、「まばらな、わずかな、希薄な」 と訳され、データ解析や機械学習におけるスパースモデリングは、元のデータデータセットにおけるデータより、少ないデータでモデルが構築されることをいいます。これは例えば、目的変数 y と説明変数 x の間でモデル y = f(x) を構築するとき、x の特徴量をたくさん準備できたとしても、本質的にはそれより少ない数の x と y の間に関係があること (スパース性) を仮定しています。

スパースモデリングを行う手法として有名なのは Least Absolute Shrinkage and Selection Operator (LASSO) です。

LASSO は線形のモデル構築手法であり、LASSO で回帰モデルを構築すると、回帰係数が 0 になる傾向があります (まったく 0 にならないケースもあります)。ある x に対応する回帰係数が0になれば、その x の特徴量がどんな値であっても、y の予測値に影響を及ぼさないため、その特徴量が削除されたことと同じ意味になります。つまり回帰係数が 0 以外の x と、y の間でモデルが構築されたことになり、元の特徴量より少数の特徴量のみ使用されたことになります。いわゆるスパースモデリングといわれている方法として、LASSO そのものや LASSO の理論が使用されています。

一方で、サポートベクター回帰 (Support Vector Regression, SVR) もスパースモデリングの一つといえます。

サポートベクター回帰(Support Vector Regression, SVR)~サンプル数10000以下ならこれを使うべし!~
サポートベクター回帰(Support Vector Regression, SVR)について、pdfとパワーポイントの資料を作成しました。デ...

もちろん、LASSO と異なり SVR では、少数の特徴量のみが使用されるといったことはなく、すべての特徴量が用いられ、モデルが構築されます。では、どのような意味でスパースモデリングなのでしょうか。

結論からいえば、SVR ではモデル構築に使用されるサンプルが少なくなります。SVR ではトレーニングデータにおけるサンプルとの間の類似度 (カーネル関数) の値の線形結合として y の値が予測されます。カーネル関数と類似度についてはこちらをご覧ください。

カーネル関数って結局なんなの?→サンプル間の類似度と理解するのがよいと思います!
サポートベクターマシン (Support Vector Machine, SVM) や サポートベクター回帰 (Support Vector...

y の値を予測するため、あるサンプルの x の値がモデルに入力されたとき、そのサンプルとトレーニングデータにおけるすべてのサンプルとの間で類似度 (カーネル関数) の値を計算し、その類似度に係数 (重み) をかけ合わせ、すべて足し合わせたもの + 定数 で y の予測値になります。カーネル関数の値にかけられる重みが SVR では 0 になる傾向があります (まったく 0 にならないケースもあります)。重みが 0 になるということは、その (トレーニングデータにおける) サンプルは、y の予測値にまったく関与しないため、なくてもよいことになります。もちろん、モデルを構築する、すなわち重みを決めるためにはそのサンプルが必要ですが、予測するときには必要ありません。

SVR では、元のデータセットにおけるサンプルよりも少数のサンプルのみを使ってモデルが構築されるという意味で、スパースモデリングです。ちなみに、重みが 0 にならなかったサンプルのことをサポートベクターといいます。SVR ではサポートベクターのみで新たなサンプルの y の値を予測しています。

以上のように、LASSO と SVR はスパースモデリングという意味で同じ仲間の手法といえます。少数のサンプルをもつデータセットに有効に機能する傾向があります。ただ、スパースモデリングだからといって、少数のサンプルをもつ、すべてのデータセットに有効というわけではありません。他の回帰分析手法とも比較検討しながら、モデルの予測精度を適切に評価して、モデル構築の検討をするとよいでしょう。

以上です。

質問やコメントなどありましたら、twitter, facebook, メールなどでご連絡いただけるとうれしいです。

シェアする

フォローする