使用libsvm从svm_train获取svm_model后,如何从模型中获取rho和SV?我知道当我得到模型时会打印出这些值,但我不知道如何获得SV。 例如:
svm_model = svmutil.svm_train(Labels,X, svm_options)
现在,如何从svm_model获取rho值和SV?
答案 0 :(得分: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()
答案 1 :(得分:1)
差不多一个月之后,我发现无法从如此生成的svm_model中获取rho或SV。如果有人想找到一个,请使用scikit-learn,它会给你支持向量,双截距和rho值,没有任何麻烦。此外,它比libsvm的python实现更快,并支持numpy数组和矩阵。
答案 2 :(得分:1)
如果您运行svm_train.exe
安装本身附带的可执行文件libSVM
,您会发现它生成模型文件作为输出XXX.model
。如果使用编辑器检查此模型,可以在那里找到rho值和支持向量列表。
在C ++ / C代码中,不支持从对象中提取此信息。