相关疑难解决方法(0)

手动计算SVM的决策函数

我正在尝试使用 python 库 SKLearn 手动计算 SVC 分类器的决策函数(而不是使用内置方法)。

我已经尝试了几种方法,但是,当我缩放我的数据时,我只能让手动计算匹配。

z 是一个测试数据(已缩放),我认为其他变量不言自明(此外,如果代码中不明显,我正在使用 rbf 内核)。

以下是我尝试过的方法:

1 循环方法:

dec_func = 0
for j in range(np.shape(sup_vecs)[0]):

    norm2 = np.linalg.norm(sup_vecs[j, :] - z)**2 
    dec_func = dec_func + dual_coefs[0, j] * np.exp(-gamma*norm2)

dec_func += intercept
Run Code Online (Sandbox Code Playgroud)

2 矢量化方法

diff = sup_vecs - z
norm2 = np.sum(np.sqrt(diff*diff), 1)**2
dec_func = dual_coefs.dot(np.exp(-gamma_params*norm2)) + intercept
Run Code Online (Sandbox Code Playgroud)

但是,这些都不会返回与decision_function. 我认为这可能与重新调整我的价值观有关,或者更有可能是我一直在寻找的一些愚蠢的事情!

任何帮助,将不胜感激。

python svm libsvm svc scikit-learn

4
推荐指数
1
解决办法
4711
查看次数

标签 统计

libsvm ×1

python ×1

scikit-learn ×1

svc ×1

svm ×1