2010-12-27 12 views
7

libsvmのsvm_predict()メソッドに関する質問があります。libsvm予測メソッドの混乱

>>> y, x = [1,-1], [{1:1, 3:1}, {1:-1,3:-1}] 
>>> prob = svm_problem(y, x) 
>>> param = svm_parameter('-c 4 -b 1') 
>>> m = svm_train(prob, param) 

>>> p_label, p_acc, p_val = svm_predict(y, x, m) 

今では、yはxの辞書に関連付けられているカテゴリのリストであることを理解:

READMEこのクイックスタートサンプルコードを有しています。私はまた、svm_trainの部分を理解しています。

意味が分からない部分は、svm_predictでは、xのテストデータと共にyから '真の値'を提供する必要があるということです。私は、前もってテストデータの分類を知らないという考えがあると思いました。

私のトレーニングデータがある場合:

y = [1, 2, 3] 
x = [{1:1}, {1:10}, {1:20}] 

が、私のテストデータは次のとおりです。

z = [{1:4}, {1:12}, {1:19}] 

なぜ私はsvm_predictへのzの真の値を渡すために必要なのです()のような:

a, b, c = svm_predict(y, z, m) 

私はzの真の値を知ることはできません - それは予測のためのものです。予測を実行するときにyの任意の分類値を入力するか、何か完全に欠落していますか?

おかげで、すべての

答えて

5

それはあなたが外のサンプルテストを行っている場合の精度の統計を出すために、真のラベルを使用しています。

あなたは「オンライン」、それを実行している場合は、あなたが実際に真のラベルを持っていない、そしてちょうど[0]*len(z)の代わりy

+0

感謝します。 – apexdodge