我正在试图弄清楚 python list 的正确格式是什么,作为python中 svm_problem 函数的输入。我从网上获得了以下程序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 len(x)==len(y)
。
但如果x=[ [1,0,1],[-1,0,-1]]
,程序运作完美。我不应该给出长度超过2的火车数据问题吗?
另外我不明白x = [[1,0,1],[ - 1,0,-1]]是什么标签,数据是什么?
非常感谢任何帮助。
答案 0 :(得分:2)
svm_problem()
有两个参数:标签矢量的第一个参数,第二个是特征矩阵。您收到此断言错误是因为您只指定了2个标签[1, -1]
,作为调用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)
答案 1 :(得分:0)
如果你给出3个例子,你需要给出三个输入的类,所以你需要做
prob = svm_problem( [1,1,-1],x )
或类似的东西。