SVM SVMLight - eiichiromomma/CVMLAB GitHub Wiki

(SVM) SVM-Light

手軽に試せるSupport Vector Machine

導入

上のページからソースファイルを入手して展開する。 但し、圧縮ファイルにディレクトリ情報が無く、ソース一式がカレントディレクトリにブチ撒かれるので注意。

mkdir svm_light
tar xzf ソースファイル
make

とでもする。

FreeBSDとLinuxでは何も考えずにいきなりmakeして問題無い。

svm_learn (学習用プログラム)
svm_classify (分類用プログラム) 

の2つを使う。

使い方

svm_learn

svm_learn [options] example_file model_file

で学習する。 example_fileは後で説明する書式に従って記述したテキストファイルで、model_fileは学習結果を収めるファイルでsvm_learnが作るものなので適当な名前を指定するだけで良い。 つまりmodel_fileを保存しておけば学習状態を独立して管理できる。

オプションに関しては基本的に-cオプションしか弄らないで良さそう。-cに渡す数値が大きくなるほどマージンを広くとるが学習に時間を要する。

ちなみに-zオプションは動作モードの選択で、分類、回帰、ランキングが選べる。

example_fileの書式

<target> <feature>:<value> <feature>:<value> ... <feature>:<value> # <info>

target

分類モードでは1がポジティブ解、-1がネガティブ解を表わす。

回帰モードでは実数。

feature

特徴量のインデックス。要するに何番目の特徴かを示す。当然整数。

value

特徴量。浮動小数点。

info

コメントだがvectorと一緒に保存される。

example_fileの例

分類モード

-1 1:0.43 3:0.12 9284:0.2 # abcdef

abcdefに関するデータで、ネガティブ解で特徴量1が0.43、特徴量3が0.12、特徴量9284が0.2、他の特徴量2,4~9283(仮に9284が特数徴とすると)は0となる。

回帰モード

targetが実数となるだけであとは同上。

ランキングモード

svm_classify

svm_classify [options] example_file model_file output_file

example_fileがテスト用データで、model_fileがsvm_learnで生成した学習データ、output_fileが分類結果。

サンプルデータによる例

"Getting started: some Example Problems"に関する説明。

Inductive SVM

example1.tar.gzを入手して展開するとexample1にデータがある。

./svm_learn example1/train.dat example1/model

で学習。

./svm_classify example1/test.dat example1/model example1/    predictions

で分類。

example1/predictionsに分類結果が収められるが、このままだと評価し辛いのでスクリプトかCで比較プログラムを作ると良い。

Transductive SVM

帰納過程と演繹過程を同時に行う学習とか。未調査。 ここ に解説あり。

Ranking SVM

未調査

⚠️ **GitHub.com Fallback** ⚠️