2

我正在尝试在 scikit 中训练 SVM。我正在按照示例进行操作,并尝试将其调整为我的 3d 特征向量。我尝试了页面http://scikit-learn.org/stable/modules/svm.html中的示例 ,它运行了。在修复错误时,我回到教程设置并发现了这一点:

X = [[0, 0], [1, 1],[2,2]]
y = [0, 1,1]
clf = svm.SVC()
clf.fit(X, y) 

工作时

X = [[0, 0,0], [1, 1,1],[2,2,2]]
y = [0, 1,1]
clf = svm.SVC()
clf.fit(X, y)

失败: ValueError: X.shape[1] = 2 should be equal to 3, the number of features at training time

这里有什么问题?这只是一个额外的维度......谢谢,El

4

1 回答 1

2

运行后一个代码对我有用:

>>> X = [[0,0,0], [1,1,1], [2,2,2]]
>>> y = [0,1,1]
>>> clf = svm.SVC()
>>> clf.fit(X, y)
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0, degree=3, gamma=0.0,
  kernel='rbf', max_iter=-1, probability=False, shrinking=True, tol=0.001,
  verbose=False)

该错误消息似乎应该在您使用 . 调用.predict()SVM 对象时实际发生kernel="precomputed"。是这样吗?

于 2013-07-07T18:49:41.167 回答