MacでSVM-Lightを使う

| Topic path: Top / 機械学習 / MacでSVM-Lightを使う

*はじめに [#n7585afc]
SVM-Lightはコーネル大学の[[Thorsten Joachimsさん:http://www.cs.cornell.edu/People/tj/]]が開発したSVMプログラムです.

Mac OS X 10.5.7とSVM-Light V6.02で確認しました.


*必要なもの [#xed7a8ca]
-make
-gcc

Mac OS XのDVDからXcode Toolsをインストールすると,これらもインストールされます.


*ダウンロード [#rb402e19]
[[SVM Lightのサイト:http://svmlight.joachims.org/]]からソース・コードをダウンロードします.
-http://download.joachims.org/svm_light/current/svm_light.tar.gz

ちなみに,Solaris, Windows, Cygwin, Linuxには実行可能なバイナリーが提供されています.


*インストール [#s7b2d0fd]
展開するときにディレクトリーを作ってくれないので注意しましょう.
#geshi(bash){{
mkdir svm_light
mv svm_light.tar.gz
gunzip -c svm_light.tar.gz | tar xvf -
make all
}}
gunzipの-cオプションは圧縮ファイルをそのままにして伸張した結果を標準出力に書き出すもので,tarの引数-は標準入力から入力されたファイルを展開するものです.

これだとコンパイルだけで,パスを通さないと使えません.
パスが通っているところにコンパイルされたファイルを移動させると,いつでもターミナルから実行できるようになります.
#geshi(bash){{
sudo mv svm_learn svm_classify /usr/local/bin
make clean
}}
最後のmake cleanは不要になったファイルを消すためのオマケです.
コンパイルでできたファイルまで消そうとしますので,移動させない場合はこれを実行してはいけません.


*使い方 [#y8ac46ef]

[[SVM Lightのサイト:http://svmlight.joachims.org/]]からテキスト分類の例題をダウンロードします.
-http://download.joachims.org/svm_light/examples/example1.tar.gz

ソース・コードとちがって,こちらはexample1というディレクトリーを作ってくれます.
#geshi(bash){{
gunzip -c example1.tar.gz | tar xvf -
}}
これで,examples1ディレクトリーの中に次の3つのファイルができます.
-''train.dat'' 訓練データ
-''test.dat'' テスト・データ
-''words'' 特徴語リスト

この例題は,「[[Reuters-21578:http://www.daviddlewis.com/resources/testcollections/reuters21578/]]」と呼ばれている古くから使われているテキスト分類のベンチマーク問題から作られたものです.

訓練データには1,000個の正事例と1,000個の負事例が含まれており,テスト・データには600個の事例が含まれています.

ベクトルの次元は特徴語を表していて,9,947語の特徴語が使われています.
特徴語リストにはこれらの特徴語がすべて記録されています.
(SVMを実行するだけならこのファイルは使いません.)

学習させるときは''svm_learn''を使います.
第一引数が''訓練データのファイル名'',第二引数は''学習したモデルを記録するファイルの名前''です.
#geshi(bash){{
svm_learn example1/train.dat example1/model
}}

実行すると,学習中のメッセージと訓練データを用いてXi-Alpha推定による推定精度が出力され,学習したモデルが指定した名前のファイルに記録されます.

学習したモデルを用いて分類するときは''svm_classify''を使います.
第一引数が''テスト・データのファイル名'',第二引数が''学習したモデルを記録したファイルの名前'',第三引数が''分類した(予測した)結果を記録するファイルの名前''です.
#geshi(bash){{
svm_classify example1/test.dat example1/model example1/predictions
}}

実行すると,標準出力にテスト・データに対する分類精度が出力され,テスト・データに対する分類が指定した名前のファイルに記録されます.



*参考情報 [#e22e0066]
-[[SVM-Light Support Vector Machine:http://svmlight.joachims.org/]]~
Joachims, Thorsten
>本家のサイト.

-[[SVM-LightのPageのHow to useの部分の翻訳:http://www.bi.a.u-tokyo.ac.jp/~tak/svm-light.html]].~
石田 貴士
>オプションの説明の日本語訳.
>オプションとデータ・ファイルの作り方についての説明の日本語訳.
トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS