1

使用 libsvm 从 svm_train 获取 svm_model 后,如何从模型中获取 rho 和 SV?我知道当我得到模型时这些值会被打印出来,但我不知道如何得到 SV。前任:

svm_model = svmutil.svm_train(Labels,X, svm_options)

现在,如何从 svm_model 获取 rho 值和 SV?

4

3 回答 3

4

如果您使用的是 svmutil 包,那么您可以获得支持向量、系数和 rho,如下所示,

m = svmutil.svm_train( y, xs, "-s 3 -t 2" ) # EPSILON_SVR and RBF kernel
rho = m.rho[0] 
svs = m.get_SV() # Dictionary with indices 1, 2 corresponding to i-th dim on support vector
sv_coeffs = m.get_sv_coef()
于 2012-05-20T13:28:24.207 回答
1

将近一个月后,我发现无法从如此生成的 svm_model 中获取 rho 或 SV。如果有人想找到一个,请使用scikit-learn,它可以轻松地为您提供支持向量、双截距和 rho 值。此外,它比 libsvm 的 python 实现更快,并且支持 numpy 数组和矩阵。

于 2011-03-17T00:03:00.700 回答
1

如果您运行安装本身svm_train.exe附带的可执行文件libSVM,您会发现它会生成一个模型文件作为输出,XXX.model. 如果您使用编辑器检查此模型,您可以在那里找到 rho 值和支持向量列表。

看起来在 C++/C 代码中,不支持从对象中提取此信息。

于 2011-04-04T08:46:20.173 回答