SVM(SMO法)のコードを載せておきます。理論についてはこちらをどうぞ。 2011.9.18追記: ここでも書いたのですが,引数 target は -1 or 1 と設定頂く方が正しいはずです。(理論的にも正しいはず) 初出時は簡単なテストデータで動作確認を行っていたためか 0 or 1 でも動作確認が取れていたよう記憶しています。本格的に学習させる場合には 0 or 1 では学習が収束しませんでした。 大まかな流れ SMOではラグランジュ未定乗数が教師データの数量分作成されます。これらを下記の処理フローで更新していきます。 ラグランジュ乗数の更新評価は1つずつ順番に行い,全ての評価を終えたところで実際に更新が行われたかをチェックします。1件でも更新したものがあれば,更新の作業を続けていきます。 下記のコードでは,個々のラグランジュ未定乗数の更新チェックはexaminUpdate()で行
![SVMコード](https://cdn-ak-scissors.b.st-hatena.com/image/square/725cc72ad2525807cbd658875ea30a23becdecdf/height=288;version=1;width=512/https%3A%2F%2Fblog-imgs-15.fc2.com%2Fm%2Fs%2Fi%2Fmsirocoder%2Fsvm_flow.png)