ガウシアンカーネルを用いた SVR ではモデルの適用範囲を考慮しなくてよいの?!

目的変数 Y と説明変数 X との間で回帰モデル Y = f(X) を構築するとき、基本的にモデルの適用範囲 (Applicability Domain, AD) を設定する必要があります。AD の詳細はこちらをご覧ください。

モデルを作るのにサンプル数はいくつ必要か?に対する回答~モデルの適用範囲・モデルの適用領域~
統計だったり機械学習だったりニューラルネットワークだったり、データを使ったモデルの開発をしていますと、 いくつサンプルがあったらモデルはできますか? ってよく聞かれます。今回はこの質問に答えながら、モデルの適用範囲・モデルの適用領域について...
モデルの適用範囲・モデルの適用領域 (Applicability Domain, AD) ~回帰モデル・クラス分類モデルを使うとき必須となる概念~
今回は、モデルの適用範囲・モデルの適用領域 (Applicability Domain, AD) についてです。AD は回帰モデル・クラス分類モデルが本来の性能を発揮できるデータ領域のことです。回帰モデル・クラス分類モデルを使うとき必須にな...

 

回帰分析手法であるサポートベクター回帰 (Support Vector Regression, SVR) を用いるとき、

サポートベクター回帰(Support Vector Regression, SVR)~サンプル数10000以下ならこれを使うべし!~
サポートベクター回帰(Support Vector Regression, SVR)について、pdfとパワーポイントの資料を作成しました。データセットが与えられたときに、SVRで何ができるか、SVRの特徴、どのように計算するかが説明されてい...

 

X と Y の間の非線形性を考慮するため、カーネル関数を用いることが多いです。カーネル関数の中で、特によく用いられるのはガウシアンカーネルと思います。

あるサンプル x(i) と別のサンプル x(j) の間では、ガウシアンカーネルは以下のように計算されます。

 

 

γ はハイパーパラメータであり、こちらのように高速に決めることもできます。

[Pythonコードあり] サポートベクター回帰(Support Vector Regression, SVR)のハイパーパラメータを高速に最適化する方法
サポートベクター回帰 (Support Vector Regression, SVR) は、こちら:サポートベクター回帰(Support Vector Regression, SVR)~サンプル数10000以下ならこれを使うべし!~ にある...

 

ガウシアンカーネルを用いたとき、SVR モデルは以下のようになります。

 

 

n はサンプル数であり、n = 3 のとき (非常に小さいですが、説明のしやすさのため 3 にしています) 以下のような式で表されます。

 

 

新しいサンプル x における Y の値を予測するとき、x とトレーニングデータの各サンプルとの間のユークリッド距離に基づく類似度 (ガウシアンカーネルの値) と、(αi αi*) との積を足し合わせ、最後に定数項 c を足したもので Y の予測値が与えられることがわかります。さらにいえば、ε チューブ内のサンプルは、αi = 0, αi* = 0 となり Y の予測値には寄与しません。

いま、Y の値を予測したいサンプル x が、トレーニングデータの各サンプルから非常に遠いときを考えます。x とトレーニングデータの各サンプル間の距離が非常に大きいということです。このとき、ガウシアンカーネルの値はほぼ 0 になります。そのため、(αi αi*) × (ガウシアンカーネルの値) も 0 になりますので、Y の予測値は定数項 c になります。SVR モデルでは、Y の値を予測したいサンプルがトレーニングデータの各サンプルから遠いとき、予測値が一定値になるということです。皆さんの中にも、このような経験をされたことがあるかもしれません。予測値が一定の値になったとき、その値は c と考えられます。

上の式より、SVR モデルではトレーニングデータにおける代表サンプル (ε チューブ上および ε チューブ外のサンプル) との距離に基づきますので、サンプル間の距離で AD を決めることと同じ、といえるかもしれません。サンプル x とトレーニングデータの各サンプル間の距離が非常に大きい、すなわち AD 外のとき、Y の予測値が c 付近になります。しかし、予測値が c 付近にならなかったからといって AD 内といえるわけではありませんので、注意してください。AD 内を判定するときは、適切に AD を設定したほうがよいです。

線形の回帰モデルでは、Y の値を予測したいサンプルがトレーニングデータのサンプルから遠いほど、予測値が大きくなったり、逆に小さくなったりする可能性がありますが、ガウシアンカーネルを用いた SVR では、そのようなことはなく、トレーニングデータのサンプルから遠いときは予測値が c になり、AD 外、つまり予測は難しいということがわかります。しかし、サンプルがどれくらい離れているとき、どの程度の予測精度で予測できるかまではわかりません。それを検討するためには、適切に AD を設定する必要があります。

 

以上です。

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

タイトルとURLをコピーしました