サポートベクターマシン
サポートベクターマシン(SVM)
- 2クラス分類のための機械学習手法
- マージンを最大化する決定境界を求める。
- それぞれのグループの中で最も決定境界に近いデータ点をサポートベクターと呼び、サポートベクターと決定境界の距離をマージンと呼ぶ。
主問題
-
最適化問題には主問題と双対問題があり、お互いに補集合の関係であり、主問題を最小化する解は双対問題を最大化する解と一致するという性質がある
ソフトマージンSVM
-
線形分離できない場合でも対応できる。
-
パラメータCの大小で決定境界が変化する。Cが大きいときは誤差をなるべく許容しないように、Cが小さいときは誤差をより許容するように決定境界が引かれる。
非線形分離
-
より複雑な問題になると、上記の方法では計算が複雑になってしまう。そこで写像した特徴空間の内積が元の特徴ベクトルの関数で表す。これをカーネル関数と呼ぶ。このカーネル関数を使って非線形問題を解く方法をカーネルトリックと呼ぶ。
ハンズオン
サマリーと考察
- ランダムなデータを生成し、線形分離、非線形分離、ソフトマージンSVMでそれぞれモデルを作成
- 線形分離、非線形分離はきれいに分けることができるようにデータが生成されているため、分離させることができた。実際の分析では、このようにきれいに分かれたデータを使うことは少ないと考えられるため、ソフトマージンSVMがよく使われると考えられる
- ソフトマージンSVMについて、パラメータCの大きさを変えて実行してみたところ、Cが小さい場合はマージンが大きくとられ、Cが大きい場合はマージンが小さくとられる。データのばらつき具合にもよるが0.1~1の間で決めるのが良いと考える。
参考文献
- 「東京大学のデータサイエンティスト育成講座」著者:塚本邦尊、山田典一、大澤文孝