使用scikit-learn进行支持向量机训练



我正在尝试使用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 ('nnThere 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])

我不得不承认我以前实际上没有听说过单类svm。据我所知,他们的目标是找出测试示例是否与前面提供的示例相似。现在,这两种情况的区别在于,在第一个例子中,这两个向量非常相似,而在另一个例子中,这两个向量有点不同(如果我们比较这个值的不同分量的数值)。这会不会是我们想要的呢?请注意,由于泛化的原因,SVM训练并不一定意味着所有的训练样本都被分类为标记用于训练。

最新更新