我正在尝试用scikit训练SVM。我正在关注这个例子,并尝试将其调整为我的三维特征向量。 我尝试了页面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
这里有什么问题?这只是一个额外的维度...... 谢谢, 埃尔
答案 0 :(得分: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"
时,该错误消息似乎应该实际发生。是这样的吗?