TinySVM: svm_learnのパラメータについて

前回は、TinySVMのインストールと実行をしてみました。ここで少し、実行時に使ったパラメータについて観察してみます。

TinySVM svm_learnのパラメータ

150114

svm_learnの実行のテストに使ったコマンドは上に書いたとおりですが、前回のエントリーで、最後から2番めのパラメータは入力データのパス、最後のパラメータがsvm_learnが出力するモデルファイルのパスであることを書きました。

ところで、それよりも前のパラメータは何でしょうか…。この答えが、図にも書いてあるように、SVM自体のパラメータとなっています。図にはかなりいい加減に「SVMの性格を決めるパラメータ」と適当に書いてありますが、ただ、このパラメータを変えると、同じ入力データでも生成されるモデルは変わってきます。

パラメータの詳しい説明は、Manpage of SVM_LEARNにあるとおりですが、これらについての説明は、SVMの数式を若干出す必要があることもあって、とりあえず今は省略します。

良いモデルを作るには

結局モデルを作るためには、良い入力データを与え、それにマッチしたSVMを用いることが重要です。

ところで、SVMで入力するデータはベクトルです。ベクトルといっても、大きさと向きを持った量というよりは、行列の行ベクトル(若しくは列ベクトル)という感じで、数を並べたものと考えるほうが良いでしょう。

画像を分類したり、文書を分類したりする時、そのままのデータをSVMは理解できません。従って、人間がそれらのデータからベクトルを作成してSVMに与えるのです。

このベクトルの作り方が上手でないと、SVMが優秀だとしても、良いモデルは作れません。従って、この入力データ作り、というのが、また一つの問題としてあるのです。

次回は、SVMに与える入力データの形式についてまとめてみたいと思います。