サポートベクターマシンによる回帰 | 回帰アルゴリズム | Pythonによる機械学習を学ぶ

スポンサーリンク
スポンサーリンク
amazon
スマイルSALE
--:--:--
~
ad. 価格範囲を指定して商品を探せます

サポートベクターマシン(SVM)による回帰

サポートベクターマシン(SVM)は分類問題でよく利用される機械学習アルゴリズムですが、回帰問題にも応用できます。この手法はサポートベクター回帰(Support Vector Regression:SVR)と呼ばれます。SVRは、予測値と実際の値の誤差を一定範囲内に収めながら、できるだけ滑らかな回帰モデルを構築することを目的としています。

サポートベクター回帰(SVR)の仕組みを図で理解する

サポートベクター回帰(SVR)の仕組みを図で理解する

SVRの基本的な仕組み

SVRでは、単純に誤差を最小化するのではなく、あらかじめ許容する誤差の幅(ε:イプシロン)を設定します。

モデルは、この許容範囲内にできるだけ多くのデータが収まるように回帰曲線を作成します。

要素 役割
回帰曲線 データ全体の傾向を表す予測モデル
ε(イプシロン) 許容できる誤差の範囲
サポートベクター 回帰曲線の位置を決定する重要なデータ

許容誤差の範囲内にあるデータは誤差としてあまり重視されず、範囲外にあるデータのみがペナルティの対象になります。

SVRとは?

SVRは、できるだけ単純な回帰モデルを維持しながら、データとの誤差を一定範囲内に抑えることを目指します。

  • 予測誤差を一定範囲内に収めることを重視する
  • 誤差が大きいデータにはペナルティを与える
  • 非線形なデータにも対応できる
  • 高次元データにも適用できる

通常の線形回帰よりも柔軟に複雑なデータを扱えることが特徴です。

ε(イプシロン)とサポートベクター

SVRでは、回帰曲線の周囲に「許容誤差帯(εチューブ)」を設定します。

この範囲内の誤差は許容されるため、すべてのデータに厳密に合わせる必要はありません。

その結果、ノイズの影響を受けにくくなります。

また、回帰曲線の位置を決定する重要なデータ点をサポートベクターと呼びます。

  • サポートベクターがモデルの形状を決定する
  • それ以外のデータは影響が小さい
  • ノイズに対して比較的強い

カーネル関数による非線形回帰

SVRの大きな特徴は、カーネル関数を利用することで非線形な関係も学習できることです。

カーネル 特徴
線形(Linear) 直線で近似する
多項式(Polynomial) 曲線的な関係を表現できる
RBF(ガウス) 複雑な非線形データにも対応しやすい
Sigmoid ニューラルネットワークに近い性質を持つ

特にRBFカーネルは利用される機会が多く、複雑なパターンを学習する際によく使用されます。

SVRの主なパラメータ

SVRの性能はパラメータ設定によって大きく変化します。

パラメータ 説明
C 誤差をどの程度厳しく扱うかを決める
epsilon 許容する誤差範囲を決める
gamma RBFカーネルにおける影響範囲を決める

これらの値を適切に調整することで、予測性能を改善できます。

SVRが得意なケース・苦手なケース

得意なケース 苦手なケース
非線形な回帰問題 非常に大規模なデータセット
高次元データ 学習速度を重視する場合
ノイズを含むデータ パラメータ調整が難しい場合

特にデータ数がそれほど多くなく、複雑な関係を持つデータに対して高い性能を発揮します。

SVRの活用例

SVRはさまざまな回帰問題で利用されています。

  • 株価や為替の予測
  • 不動産価格の予測
  • 需要予測
  • 売上予測
  • 気温や気象データの予測

線形回帰では表現が難しい複雑なパターンを学習できるため、実務でも利用されることがあります。