我使用sklearn在python中训练了一个rbf内核SVM,现在将它移植到java进行生产。
在阅读SVC documentation时,我遇到了决策函数:
这似乎表明我必须知道每个训练样本的权重才能评估SVC,但是SVC只通过dual_coef_
属性公开支持向量的权重。
无论如何都可以解决这个问题吗?
答案 0 :(得分:1)
您无需知道每个训练样本的重量。您只需要支持向量的权重。
原因是如果向量x_i
不是支持向量,那么alpha_i=0
(参见第5页here),以及y_i*alpha_i=0
也是如此。因此,你永远不会在分类过程中使用这样的x_i
(一旦你安装了svm)。
其余参数可通过svm属性访问,如documentation中所述:
可以通过成员
dual_coef_
访问此参数 持有产品y_i*alpha_i
,support_vectors_
支持向量,intercept_
包含独立词rho
。