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 [options] example_file model_file
で学習する。 example_fileは後で説明する書式に従って記述したテキストファイルで、model_fileは学習結果を収めるファイルでsvm_learnが作るものなので適当な名前を指定するだけで良い。 つまりmodel_fileを保存しておけば学習状態を独立して管理できる。
オプションに関しては基本的に-cオプションしか弄らないで良さそう。-cに渡す数値が大きくなるほどマージンを広くとるが学習に時間を要する。
ちなみに-zオプションは動作モードの選択で、分類、回帰、ランキングが選べる。
<target> <feature>:<value> <feature>:<value> ... <feature>:<value> # <info>
分類モードでは1がポジティブ解、-1がネガティブ解を表わす。
回帰モードでは実数。
特徴量のインデックス。要するに何番目の特徴かを示す。当然整数。
特徴量。浮動小数点。
コメントだがvectorと一緒に保存される。
-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 [options] example_file model_file output_file
example_fileがテスト用データで、model_fileがsvm_learnで生成した学習データ、output_fileが分類結果。
"Getting started: some Example Problems"に関する説明。
example1.tar.gzを入手して展開するとexample1にデータがある。
./svm_learn example1/train.dat example1/model
で学習。
./svm_classify example1/test.dat example1/model example1/ predictions
で分類。
example1/predictionsに分類結果が収められるが、このままだと評価し辛いのでスクリプトかCで比較プログラムを作ると良い。
帰納過程と演繹過程を同時に行う学習とか。未調査。 ここ に解説あり。
未調査