在sklearn中重建一个类SVM的决策函数

时间:2017-05-23 11:52:49

标签: scikit-learn libsvm

为了学习单一类模型的细节,我想知道如何在sklearn中重新编程决策函数。我在这里查看了决策函数[https://github.com/scikit-learn/scikit-learn/blob/14031f6/sklearn/svm/base.py#L419]。在该函数后面,我找到了svm_csr_predict_values [https://github.com/scikit-learn/scikit-learn/blob/14031f65d144e3966113d3daec836e443c6d7a5b/sklearn/svm/src/libsvm/svm.h],但此存储库中没有定义。

我还检查了libsvm源代码[https://github.com/arnaudsj/libsvm/blob/master/svm.cpp],但什么也没得到。这两个存储库之间也没有关系。

我还试图像这样重建决策函数:

model = OneClassSVM(kernel='rbf', nu=0.1, gamma=0.1)
model.fit(X)
ssum = model.intercept_[0]
for i in range(len(model.dual_coef_.toarray()[0])):
    ssum += model.dual_coef_.toarray()[0][i] * ((35-model.support_vectors_[i,3])**2 + (40-model.support_vectors_[i,2])**2)
print math.exp(0.1*ssum-.1)

选择数字35和40来测试结果。

代码中是否有错误?

0 个答案:

没有答案