我正在尝试使用scikit-learn训练支持向量机。它正确地给出了trainingdata1
的输出。但它始终没有给出trainingdata2
的预期结果(trainingdata2
是我真正需要的)。有什么问题?
from sklearn import svm
trainingdata1 = [[11.0, 2, 2, 1.235, 5.687457], [11.3, 2, 2,7.563, 10.107477]]
#trainingdata2 = [[1.70503083,7.531671404747827,1.4804916998015452,3.0767991352604387,6.5742], [11.3, 2, 2,7.563, 10.107477]]
clf = svm.OneClassSVM()
clf.fit(trainingdata1)
def alert(data):
if clf.predict(data) < 0:
print ('\n\nThere is something wrong')
else:
print('\nCorrect')
alert([11.3, 2, 2,7.563, 10.107477])
#alert([1.70503083,7.531671404747827,1.4804916998015452,3.0767991352604387,6.5742])
答案 0 :(得分:1)
我必须承认我之前没有听说过一类SVM。据我了解,他们的目标是找出测试示例是否与之前提供的示例相似。现在,两种情况之间的区别在于,两个向量在第一个工作示例中非常相似,在另一个向量中有所不同(如果我们比较值的不同组件的数值)。可能这实际上是按照预期行事吗?请注意,由于概括,SVM培训并不一定意味着所有培训示例都被归类为标记用于培训。