如何从libsvm模型文件中找到权重向量?

时间:2016-02-10 01:31:13

标签: libsvm

我有来自LIBSVM的以下模型文件:

svm_type c_svc kernel_type linear nr_class 2 total_sv 3 rho 0.0666415
label 1 -1 nr_sv 2 1 SV
0.004439511653718091 1:4.5 2:0.5 
0.07111595083031433 1:2 2:2 
-0.07555546248403242 1:-0.5 2:-2.5

我的问题是如何从这些信息中找出权重向量?

1 个答案:

答案 0 :(得分:0)

支持向量的权重是每个支持向量线上的第一个数字(后三个)。尽管使用了线性内核,但libsvm用于通用内核SVM,因此它不会显式存储权重向量和偏差。

如果您知道需要线性内核,并且需要该信息,则可以使用liblinear(来自与l​​ibsvm相同的人)。鉴于这些琐碎的数据:

1 1:1 2:1
0 1:-1 2:-1

你可以得到这个模型,它具有明确的权重和偏见:

solver_type L2R_L2LOSS_SVC_DUAL
nr_class 2
label 1 0
nr_feature 2
bias -1
w
0.4327936 
0.4327936