【问题标题】:how to find weight vector from the libsvm model file?如何从 libsvm 模型文件中找到权重向量?
【发布时间】:2016-02-10 09:38:15
【问题描述】:

我有以下来自 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

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

【问题讨论】:

    标签: libsvm


    【解决方案1】:

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

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

    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 
    

    【讨论】:

    • 谢谢,另外我如何设置参数 c(我希望 c 足够大,这样就不会出现错误分类),以便我得到不同的权重向量。谢谢。
    猜你喜欢
    • 2017-06-18
    • 2013-02-26
    • 2016-06-05
    • 2013-10-17
    • 2010-12-17
    • 2014-05-09
    • 2014-01-05
    • 2015-12-11
    • 2023-04-09
    相关资源
    最近更新 更多