パターン認識と機械学習でsupport vector machine(SVM)について復習した.SVMは疎な解を持つ識別関数の一種であり,クラス分類や回帰など,様々な応用が可能.モデル学習が二次計画問題に帰着するため,局所解=最適解という扱いやすい性質を持つ.

1. 理論

1.a コンセプト

1.b 最大マージン分類器

1.c ラグランジュ乗数法

1.d カーネルトリック

2. 実装

学習目的であれば,ソルバで二次計画法を解いても良さそう.実務目的であれば,無難にライブラリを使ったほうが良さそう.

2.a 二次計画法ソルバ

Pythonの二次計画法ソルバとしては,CVXOPTが人気.実装するとしたら,以下のようになる.

2.b SVMライブラリ

SVMライブラリとしては,scikit-learnsklearn.svmモジュールが人気.上記と同じ機能を実装するとしたら,以下のようになる.

3. 実験

参考文献