機械学習

SVM(Support Vector Machine)を簡単にまとめてみた

本日はSVM(Support Vector Machine)に関して簡単にまとめていきます。

SVMの直感的な理解

最初に下のようなデータがある場合を考えます。

赤と緑は違うカテゴリーのデータで、これを上手く分類するための線を引くことで

新しいデータがどちらのカテゴリーに属するかの予測を行えるようにします。

Support Vector Machine では

このようにお互いのカテゴリーに近い点を基準にして分割線を引きます。

 

実線と点線はそれぞれ

・Negative hyperplane

・Positive hpyerplane

と言います。

任意でポジティブorネガティブと呼ばれているようで特に決まりはないようです。

 

また各点線から距離が等しくなるように引いた、実線の分割線を超平面(hyperplane)と言います。

 

yaaku

hyperplane(超平面)…?

2次元で引かれる線は→line 3次元→plane(面)、n次元→hyperplane(超平面)と言うようです。

SVM(Support Vector Machine)は他と何が違うのか?

2つの分類の問題を考えた時、SVMの特徴としてより分類が曖昧なデータを使用することが上げられます。

多くのアルゴリズムが全部のデータを用いて分類を行うのに対して

SVMでは図のように境界に近い値を使用する点が特徴的です。

これにより他のモデルに比べSVMが良いパフォーマンスを出すケースがあるようです。

まとめ

SVMはwikipediaで概要だけ定義を見ると謎すぎますが↓

サポートベクターマシンは、線形入力素子を利用して 2 クラスのパターン識別器を構成する手法である。訓練サンプルから、各データ点との距離が最大となるマージン最大化超平面を求めるという基準(超平面分離定理)で線形入力素子のパラメータを学習する。

最も簡単な場合である、与えられたデータを線形に分離することが可能な(例えば、3次元のデータを2次元平面で完全に区切ることができる)場合を考えよう。

wikipedia(基本的な考え方より引用)

図で見ると非常にわかりやすいですね。

yaaku

勉強がんばりましょう~