繁体   English   中英

如何从svm_model获取支持向量和rho值(在Python中)?

[英]How to get support vectors and rho values from svm_model (in Python)?

使用libsvm从svm_train获得svm_model之后,如何从模型中获得rho和SV? 我知道在获取模型时会打印出这些值,但是我不知道如何获取SV。 例如:

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

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

如果您使用的是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()

将近一个月后,我发现无法从这样生成的svm_model中获取rho或SV。 如果有人要寻找一个,请使用scikit-learn ,它为您提供支持向量,双重截距和rho值,而无任何麻烦。 此外,它比libsvm的python实现更快,并且支持numpy数组和矩阵。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM