【问题标题】:Finding Support vectors from a dataset that are the hardest to classify从数据集中寻找最难分类的支持向量
【发布时间】:2018-08-04 14:34:42
【问题描述】:

我正在尝试在 MNIST 数据集上训练一个支持向量机分类器来区分两个字符。我正在使用 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_

但是,我希望找到最接近分离超平面并因此最难分类的支持向量。有没有允许我这样做的功能?

如果没有,我该怎么办?

【问题讨论】:

    标签: python machine-learning svm


    【解决方案1】:

    如果您查看 sklearn.svm.SVC 的文档,您会看到:

    decision_function(X) 样本 X 到分离超平面的距离。

    所以你可以这样做(对于 n 个最接近的向量)

    clf.support_vectors_[np.abs(clf.decision_function(clf.support_vectors_)).argsort()[:n]]

    【讨论】:

      猜你喜欢
      • 2021-06-28
      • 2019-06-03
      • 2012-08-24
      • 2011-07-01
      • 2022-06-30
      • 2013-08-31
      • 2015-02-16
      • 2018-10-12
      • 2017-11-30
      相关资源
      最近更新 更多