2012年7月6日金曜日

LibSVMを使用してみた


0:準備
http://www.csie.ntu.edu.tw/~cjlin/libsvm/のDownload LIBSVMからファイルをダウンロードしPCに展開
windowsフォルダー内に、svm-scale、svm-train、svm-predictのふぁいるが存在している
windowsのコンソールアプリを使用して、下記コマンドを実行する

1:データのスケーリング
svm-scale -s c:\tmp\scale.txt c:\tmp\org.txt > c:\tmp\scaled.txt

in:
org.txt SVM形式の計測データ(クラスに分類済みであること)

out:
scale.txt 計測データのスケール範囲(後でテストデータのスケールの調整に使用)
scaled.txt スケーリングされた計測データ


補足
SVM形式のファイル
1 1:20 2:16 3:28
1 1:26 2:19 3:21
の様に行の先頭にクラスの番号、セパレータ””となり、その後ベクトルの番号、セパレータ:、値、セパレータ””の並びの繰り返しとなる


2:学習
svm-train c:\tmp\scaled.txt
in:
scaled.txt スケーリングされた計測データ

out:
scaled.txt.model モデルデータ(辞書データ)

3:テストデータのスケーリング
svm-scale -r c:\tmp\scale.txt c:\tmp\testdata.txt > c:\tmp\scaledtestdata.txt

in:
scale.txt 1で作成したスケール範囲データ
testdata.txt テスト用の計測データ(頭にどのクラスの分類データを入れておくこと)

out:
scaledtestdata.txt スケーリングされた計測データ

4;データの予測
svm-predict c:\tmp\scaledtestdata.txt c:\tmp\scaled.txt.model c:\tmp\res.txt
注意:テストデータもスケーリングが必要
Accuracy = 100% (194/194) (classification)
ここ出力されるAccuracyは、テストデータに付与されたクラスデータの正確度を示す
間違う場合もある。どのデータが間違いなのかは、res.txtを見ることで確認できる


in:
scaledtestdata.txt スケーリングされたテストデータ
scaled.txt.model 2で作成したモデルデータ

out:
res.txt 判定結果

0 件のコメント:

コメントを投稿