0

ドキュメントの分類に libsvm を使用しています。プロジェクトで svm.cc と svm.h を使用しています。次に、svm_train を呼び出します。svm_save_model を使用してモデルをファイルに保存します。

私はそこにカテゴリを持っています。svm モデル ファイルは次のとおりです。

svm_type c_svc
kernel_type rbf
gamma 0.001002
nr_class 3
total_sv 9
rho -0.000766337 0.00314423 0.00387654
label 0 1 2
nr_sv 3 3 3
SV
1 1 1:0.001 2:0.001 3:0.012521912 5:0.001 15:0.012521912 17:0.012521912 23:0.001 
1 1 1:0.001 2:0.014176543 4:0.093235799 6:0.001 7:0.0058630699 9:0.040529628 10:0.001 
1 1 11:0.38863495 33:0.08295242 46:0.041749886 58:0.08295242 89:0.08295242 127:0.15338862 -1 1 5:0.001 8:0.0565 10:0.001 13:0.001 18:0.0565 21:0.021483399 34:0.12453384 36:0.001 
-1 1 13:0.034959612 34:0.090130132 36:0.034959612 45:0.034959612 47:0.12019824 
-1 1 5:0.001 8:0.048037273 13:0.001 18:0.048037273 29:0.14715472 30:0.018360058 36:0.001 
-1 -1 9:0.0049328688 12:0.090902344 18:0.1156038 27:0.0049328688 31:0.015144206

index:value の形式のベクトル値の前の 1 と -1 は何ですか?

4

1 に答える 1

2

libsvm FAQ から:

Q: モデル ファイルについて詳しく教えてください。

モデル ファイルでは、パラメーターと labels などのその他の情報の後に、各行がサポート ベクターを表します。サポート ベクターは、前に示した「ラベル」の順序で一覧表示されます。(つまり、「ラベル」リストの最初のクラスからのものが最初にグループ化され、以降も同様です。) k がクラスの総数である場合、クラス j のサポート ベクターの前に、k-1 個の係数 y* があります。 alpha ここで、alpha は次の 2 つのクラスの問題の双対解です: 1 対 j、2 対 j、...、j-1 対 j、j 対 j+1、j 対 j+2、...、j 対 k最初の j-1 個の係数では y=1、残りの kj 個の係数では y=-1です。たとえば、4 つのクラスがある場合、ファイルは次のようになります。

 +-+-+-+--------------------+ 
 |1|1|1|                    | 
 |v|v|v|  SVs from class 1  | 
 |2|3|4|                    |
 +-+-+-+--------------------+ 
 |1|2|2|                    | 
 |v|v|v|  SVs from class 2  | 
 |2|3|4|                    |
 +-+-+-+--------------------+ 
 |1|2|3|                    | 
 |v|v|v|  SVs from class 3  | 
 |3|3|4|                    |
 +-+-+-+--------------------+ 
 |1|2|3|                    | 
 |v|v|v|  SVs from class 4  | 
 |4|4|4|                    |
 +-+-+-+--------------------+                            

http://www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html#f402

于 2013-08-14T05:33:20.183 に答える