我尝试在MNIST数据集上训练svm分类器来区分两个字符。我使用的是C=10,gamma=10^-6的指数核。我还打印了支持向量:
clfretrainC=svm.SVC(C=Cfinal,kernel="rbf",gamma=gammafinal)
clfretrainC.fit(ReTraintotx,ReTraintoty)
Pefinal=1-clfretrainC.score(Testtotx,Testtoty)
print "Test Error"
print Pefinal
print "Number of Support Vectors"
print clfretrainC.support_vectors_
print clfretrainC.support_vectors_.shape
sv=clfretrainC.support_vectors_
然而,我希望找到最接近分离超平面的支持向量,因此最难分类。有没有一个函数允许我这样做?你知道吗
如果没有,我该怎么办?你知道吗
如果你看文件sklearn.svm.SVC您将看到:
所以你可以(对于n个最近的向量)
clf.support_vectors_[np.abs(clf.decision_function(clf.support_vectors_)).argsort()[:n]]
相关问题 更多 >
编程相关推荐