libsvmのsvm_predict()メソッドについて質問があります。
READMEには、次のクイックスタートサンプルコードがあります。
>>> 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の辞書に関連付けられているカテゴリのリストであることがわかりました。svm_trainの部分も理解しています。
意味をなさない部分は、svm_predictで、xのテストデータとともにyからの「真の値」を提供する必要があるということです。事前にテストデータの分類がわからないのではないかと思いました。
私のトレーニングデータが次の場合:
y = [1, 2, 3]
x = [{1:1}, {1:10}, {1:20}]
しかし、私のテストデータは次のとおりです。
z = [{1:4}, {1:12}, {1:19}]
次に、次のようにzの真の値をsvm_predict()に渡す必要があるのはなぜですか。
a, b, c = svm_predict(y, z, m)
zの真の値を知るつもりはありません-それが予測の目的です。予測を実行するときにyに任意の分類値を設定する必要がありますか、それとも何かが完全に欠落していますか?
皆さんありがとう