はじめに †
SVM-Lightはコーネル大学のThorsten Joachimsさんが開発したSVMプログラムです.
Mac OS X 10.5.7とSVM-Light V6.02で確認しました.
必要なもの †
- make
- gcc
Mac OS XのDVDからXcode Toolsをインストールすると,これらもインストールされます.
ダウンロード †
SVM Lightのサイトからソース・コードをダウンロードします.
ちなみに,Solaris, Windows, Cygwin, Linuxには実行可能なバイナリーが提供されています.
インストール †
展開するときにディレクトリーを作ってくれないので注意しましょう.
mkdir svm_light mv svm_light.tar.gz gunzip -c svm_light.tar.gz | tar xvf - make all
gunzipの-cオプションは圧縮ファイルをそのままにして伸張した結果を標準出力に書き出すもので,tarの引数-は標準入力から入力されたファイルを展開するものです.
これだとコンパイルだけで,パスを通さないと使えません. パスが通っているところにコンパイルされたファイルを移動させると,いつでもターミナルから実行できるようになります.
sudo mv svm_learn svm_classify /usr/local/bin make clean
最後のmake cleanは不要になったファイルを消すためのオマケです. コンパイルでできたファイルまで消そうとしますので,移動させない場合はこれを実行してはいけません.
使い方 †
SVM Lightのサイトからテキスト分類の例題をダウンロードします.
ソース・コードとちがって,こちらはexample1というディレクトリーを作ってくれます.
gunzip -c example1.tar.gz | tar xvf -
これで,examples1ディレクトリーの中に次の3つのファイルができます.
- train.dat 訓練データ
- test.dat テスト・データ
- words 特徴語リスト
この例題は,「Reuters-21578」と呼ばれている古くから使われているテキスト分類のベンチマーク問題から作られたものです.
訓練データには1,000個の正事例と1,000個の負事例が含まれており,テスト・データには600個の事例が含まれています.
ベクトルの次元は特徴語を表していて,9,947語の特徴語が使われています. 特徴語リストにはこれらの特徴語がすべて記録されています. (SVMを実行するだけならこのファイルは使いません.)
学習させるときはsvm_learnを使います. 第一引数が訓練データのファイル名,第二引数は学習したモデルを記録するファイルの名前です.
svm_learn example1/train.dat example1/model
実行すると,学習中のメッセージと訓練データを用いてXi-Alpha推定による推定精度が出力され,学習したモデルが指定した名前のファイルに記録されます.
学習したモデルを用いて分類するときはsvm_classifyを使います. 第一引数がテスト・データのファイル名,第二引数が学習したモデルを記録したファイルの名前,第三引数が分類した(予測した)結果を記録するファイルの名前です.
svm_classify example1/test.dat example1/model example1/predictions
実行すると,標準出力にテスト・データに対する分類精度が出力され,テスト・データに対する分類が指定した名前のファイルに記録されます.
参考情報 †
- SVM-Light Support Vector Machine
Joachims, Thorsten本家のサイト.
- SVM-LightのPageのHow to useの部分の翻訳.
石田 貴士オプションとデータ・ファイルの作り方についての説明の日本語訳.