比較的簡単に扱えるSVMライブラリ. 多値分類も可能. 導入公式ページよりzipまたはtar.gzをDL.中に入ってるsvm-predict, svm-scale, svm-trainはそのまま実行可能. pathの通ってる場所においておくと良い. 素性のフォーマット1行1データ形式.行頭にそのデータのクラス,その後ろに半角スペース区切りで(素性番号):(値)を追加していく. 具体的にはこんな感じ 1 1:1.0 2:0.5 1 1: -0.5 2:1.0 -1 1:-1.0 2:-1.0 -1 1: 1.0 2:-2.0 特徴値(素性の値)のスケーリング基本的にはスケーリングを行うことをおすすめする.デフォルトで-1~+1にスケーリングする.オプションで範囲を指定可能. % svm-scale data_train.dat > data_train_scaled.dat # data_train.datを-1~+1の範囲でスケーリングし,data_train_scaled.dat に出力 % svm-scale -l 0 data_train.dat > data_train_scaled.dat # data_train.datを0~1の範囲でスケーリングし,data_train_scaled.datに出力 スケーリングのパラメータをファイルに出力し,同じパラメータで別のファイルをスケーリングすることもできる. (訓練データをスケーリングしたうえで,評価データも同じパラメータでスケーリングする際に利用) % svm-scale -s scale_param data _train.dat > data_train_scaled.dat % svm-scale -r scale_param data_test.dat > data_test_scaled.dat # data_train.datと同じパラメータでスケーリング 学習SVMの種類やカーネル関数をオプション指定できる.svm-train とだけ打つと,使い方とオプションの説明が見られる.自然言語処理においては,素性種類数が多いので,線形カーネル( -t 0 オプション)を用いるとうまく行きやすい.% svm-train -t 0 -c 0.5 data_train_scaled.dat model.txt # data_train_scaled.datより学習,学習したモデルをmodel.txtに出力(線形カーネルを使用,Cパラメータは0.5) `% svm-train -t 0 -c 0.5 -v 10 data_train_scaled.dat # data_train_scaled.datを用いて10分割交差検定(カーネル関数は上に同じ) % svm-predict data_test_scaled.dat model.txt result.txt # data_test_scaled.datを対象としモデルmodel.txtによる分類を行う.分類結果はresult.txtに出力. とすれば良い. 標準出力には分類精度が出力される. |