2

私は、 Pythonのsvm_problem関数への入力として与えられるPythonリストの適切な形式を理解しようとしています。私はウェブから次のプログラム、stackoverflowを入手しました。

私は次のものを持っています:

from svm import *
x=[ [1,0,1],[-1,0,-1],[1,0,0]]
#x=[ [1,0,1],[-1,0,-1]]
prob = svm_problem( [1,-1],x  )
param = svm_parameter(kernel_type = LINEAR, C = 10)
m = svm_model(prob, param)
print m.predict([ 1,1, 1])

アサーションエラーが発生し、assertが失敗したと言いますassert len(x)==len(y)

しかし、の場合x=[ [1,0,1],[-1,0,-1]]、プログラムは完全に機能します。2を超える長さの列車データの問題を与えることは想定されていませんか?

また、x = [[1,0,1]、[-1,0、-1]]のラベルとは何で、データは何ですか?

どんな助けでも大歓迎です。

4

2 に答える 2

2

svm_problem()は 2 つのパラメーターを取ります。最初のパラメーターはラベルのベクトルで、2 番目のパラメーターは特徴の行列です。[1, -1]への呼び出しの最初のパラメータとして2 つのラベルのみを指定しているため、このアサーション エラーが発生しますsvm_problem

例:

y = [1,-1,1,1]
x = [[1,0,1], [-1,0,-1], [1,2,3], [4,5,6]]
prob = svm_problem(y, x)
于 2011-04-11T21:13:49.100 に答える
0

3 つの例を挙げると、3 つの入力のクラスも指定する必要があるため、次のようにする必要があります。

prob = svm_problem( [1,1,-1],x  )

または似たようなもの。

于 2011-04-11T21:16:09.350 に答える