【问题标题】:How is support vectors arranged in Libsvm model?Libsvm 模型中的支持向量是如何排列的?
【发布时间】:2016-06-05 11:52:49
【问题描述】:

我想使用从 Libsvm 模型派生的参数来预测新数据(不是在 matlab 中)。请问model中的支持向量(nSV, sv_coef, SVs)是否按照模型中Label的顺序排列?下面是使用线性核从fisheriris 导出的模型,Label 是 [3;2;1] 那么这是否意味着 nSV、sv_coef、SV 的顺序是 [class3;class2;class1]?

【问题讨论】:

    标签: matlab machine-learning svm libsvm supervised-learning


    【解决方案1】:

    确实如此。我一直在做类似的实验,我的结果是

    看起来前三个 SV 来自第 1 类。从我得到的 SV 索引字段中

    通过查看标签向量中的这些索引,我得到了:

    第 24、第 25 和第 42 个模式确实有标签 1。

    第 4 个 SV 索引是 53,它具有标签 2...等等。

    【讨论】:

    • 谢谢!还有...如果我做二进制分类,例如nSV=[25;24],Label=[2;1],sv_coef应该被分成2部分(前25个实例代表class2 vs class1的coef,后24个实例代表 class1 与 class2 的系数)。在计算class2 vs class1的决策值时,我应该使用zsvs'*coef-rho(z是新的数据样本),但是当计算class1 vs class2的决策值(即使用sv_coef的后半部分)时,应该我使用 zsvs'coef-rho 或 zsvs'*coef+rho(z 是新数据样本)...?
    • 我可以对你说实话吗?在 LibSVM 中不需要这样的计算。通过在svmtrain()svmpredict() 中使用命令-b 1,LibSVM 会自动为您评估决策值。特别是,决策值将是svmpredict() 的第三个输出,您可以将其称为[PredictedLabels, Accuracy, DecisionValues]=svmpredict(ValidationLabels,ValidationSet,SVMmodel,'-b 1')
    • 是的,是的,我知道 :D 但我需要在 matlab 之外做预测部分......这意味着我需要使用模型给我的参数在其他地方重建方程(在 java例如)
    • 在这里看看这个答案:stats.stackexchange.com/questions/126379/…
    猜你喜欢
    • 2013-02-26
    • 2013-04-04
    • 2014-06-28
    • 2013-10-17
    • 2017-05-18
    • 2014-01-05
    • 2014-03-18
    • 2020-08-24
    • 2020-02-21
    相关资源
    最近更新 更多