バーチャルスクリーニング (2)

スパース形式のファイルが用意できたので、SVMを実際に動かしてみましょう。
頻用されている実装ソフトは、SVMlightLibSVMですが、
今回はあえて、Fortranで書かれているp-svmを使ってみます ^^;
(以下の手順は、LibSVMでもほぼ同じです)。


まずは、ダウンロードしたファイルを解凍してコンパイル

tar zxvf p-svm-1.0.1.tar.gz
cd p-svm/src/
make

サンプルファイルが同封されているようなので、試しに動かしてみましょう。

cd ../example
../src/SVMlearn -c 10 -g 0.01 in_y10000.txt model

"in_y10000.txt" は、スパース形式の入力ファイル、
"model" は出力ファイル(構築したSVMモデルのための)、
"-c 10" は、パラメータの一つで、大雑把に書くと、判別のゆるさを表しています。
"-g 0.01" もパラメータで、放射基底関数(RBF)というカーネル関数を使うときには必要です。
通常、-c, -gの値は、交差検証法(クロスバリデーション)を繰り返して試行錯誤で決定します。
パラメータが2つもあるので最適化が面倒ですが、
非線形データを精度良く判別するためには避けられないプロセスです。


そして、予測したい化合物もスパース形式で準備し(以下の例では"in_y10000.txt")、
モデルファイルを使って予測します。

../src/SVMpred in_y10000.txt model output

予測されたラベルが出力されます。


つづく。