OctaveでLIBSVMを使う!

講義でSVMを使わないといけなくなったのでOctave上で使えるようにした時のメモ。

環境としては以下の通り。

そして今回使用したLIBSVMは以下のところから持ってきたものを使いました。
http://www.csie.ntu.edu.tw/~cjlin/cgi-bin/matlab.cgi?+http://www.csie.ntu.edu.tw/~cjlin/libsvm/matlab+zip

落としてきたLIBSVMのファイルはそのままではエラーをはいてくるのでちょこっと手を加えます。

上の3つのファイルを開いてtypedef int mwIndex;の行をコメントアウトします。
そしてOctave上でLIBSVMディレクトリに移動して以下のコマンドを打ち込む。

これでSVMが動くようになります。
試しにコードに付属しているREADMEのExamplesの一部を実行してみるために、LIBSVMディレクトリのところで以下のコマンドを打ち込む。

  • >> load heart_scale.mat
  • >> model = svmtrain(heart_scale_label, heart_scale_inst, '-c 1 -g 2');
  • >> [predict_label, accuracy, dec_values] = svmpredict(heart_scale_label, heart_scale_inst, model);

下のようなものが返ってきたらOK
Accuracy = 99.2593% (268/270) (classification)

最初からlinuxでやっていればこんな苦労なかっただろうに・・・