についての論文を読む。 SVMは基本的には2クラス分類器なので、多クラス分類は原理的には不可能である。 そこで、多クラスの分類にSVMを用いるには以下の二つを用いる。 One-Versus-Rest(1-vs-R) One-Versus-One(1-vs-1) 1-vs-Rは一つのクラスと残りすべてのクラスのデータの分類器としてSVMを用いる。 なので、必要となるSVMは、Nクラス分類問題に対してはN個。 学習後のN個のSVMで最大の出力を示したものに分類。 分類そのものが複雑になるのと、データに偏りが生じやすい。 1-vs-1は2クラスの組み合わせを作り、それぞれを2クラス分類問題としてSVMを用いる。 なので、必要となるSVMは、Nクラス分類問題に対してはN(N-1)/2個。 学習後のSVMで出力を統合したり、多数決で分類。 分類そのものは単純であるが、必要となる分類気が多い。 読んだ
kenji 20:44 コメント (2) カテゴリー:Diary SVM(サポートベクターマシン)でちょっと遊んでみる。 以前はk-NN法でパターン認識したが今回はSVMだ。 SVMは・・・えーと・・・どんなのかというと・・・、うーんと・・・・難しくて理解不能でしたorz 理解しようと思っても、各要素分野がすでに難しすぎるのでさっぱり。 詳しくはサポートベクターマシン入門とか。 教師有り学習のパターン認識で、TinySVMを使えばサクッと使うことができると理解しておけばとりあえず良いだろう(ホントか?) 学習内容は、例によって5x5マスに書いた数字を認識するというものだ。 以下のように点の有る無しを0,1で表す。 1 1:0 2:1 3:1 4:0 5:0 6:0 7:0 8:1 9:0 10:0 11:0 12:0 13:1 14:0 15:0 16:0 17:0 18:1 19:0 2
導入方法 1.ここからLIBSVMのzipファイルもしくはtar.gzファイルをダウンロードし適当なディレクトリに解凍。(最新版3.1) 2.解凍したフォルダに移動し、makeコマンド実行。以下のファイルができるはず。 svm.o svm-train.exe svm-predict.exe svm-scale.exe 3.解凍したフォルダの中のpythonフォルダに移動し、makeコマンド実行。以下のファイルができるはず。 libsvm.so.2 使用例 適当に学習させてみる. svmtest.py from svm import * from svmutil import * prob = svm_problem([1,-1], [[1,0,1], [-1,0,-1]]) #訓練データ param = svm_parameter('-t 1 -c 3') #SVMのパラメータ設定 m =
Freeware† mloss:linear-svm, mloss:support-vector-machines, mloss:svm, mloss:support-vector-machine SVM Software @ www.svms.org LIBSVM (C) Weka LibSVM (WLSVM) LIBLINEAR:大規模計算用,L1/L2損失 (C/C++) liblinear2scipy:pythonラッパー SVM perf, SVM light (C) Tree Kernels in SVM-light SVM python:pythonインターフェース Algorithm-SVMLight:perlインターフェース LaSVM:近似オンライン学習の利用による高速化 svmsgd @ Léon Bottou:確率的勾配降下法の利用 Pegasos AI-Categ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く