*LibSVM [#i1a24718]

**LibSVMとは [#xd93c22f]
-SVM(Support Vector Machine) ツールの一つ
-学習が早い
-幾つかの種類のカーネル関数を選べる

**簡単な使い方 [#da463469]
-学習データを用意する(場合によっては評価データも)
--書式:
 クラスID 1:値 2:値 3:値 4:値 ...
--例
 +1 1:0.97 2:1.4 3:1 4:2 5:1.3
 -1 1:-1.2 2:0.1 3:0.1 4:-2 5:1.1 
---クラスIDが判定させたいブール値.基本的には2値だが,LibSVMは多値分類もできる.その際はIDを増やすだけでOK.
---クラスID以降に素性値を入力していく
---SVMを活かすも殺すも素性次第!

-svm-scaleで各素性値をスケーリングする
--学習データと評価データが同じ場合の例(Cross Validation を使う際も含む)
 $ ./svm-scale data.train > data.scale
--学習データと評価データが違う場合の例
 $ ./svm-scale -s data.minmax data.train > data.train.scale
 $ ./svm-scale -r data.minmax data.measure > data.measure.scale
(学習データと評価データのスケールを同じにするため,学習データの最大値と最小値をファイルに保存することで評価データの方にも同じスケーリングを施している)

-svm-trainで学習する
--モデルファイルの作成
 $ ./svm-train data.train.scale
---これでdata.train.scale.modelという名前のモデルファイルができる
--10-Fold Cross Validationを行う
---学習データの量が少ないとき,評価データを用意していないとき等に行う評価方法
---学習データを10個に分割して,1個を評価データ,残りの9個を学習データとして評価する
---これを分割数(10回)行い,その平均を結果とする
#ref(crossvalidation.png)
 $ ./svm-train -v 10 data.train.scale

-svm-predictで評価する
--評価データを用意しているときは,Cross Validationを行う必要はない
--作成したモデルファイルを利用し実際に予測を行う
 $ ./svm-predict data.measure.scale data.train.scale.model > result.txt
---result.txt に書きだされた結果が実際に予測された結果となる

-実際に音声の判別に使ってみる
***テーマ: 「工事中」 [#uf423d42]
トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS