【问题标题】:How to interpret SVM-light results如何解释 SVM-light 结果
【发布时间】:2014-07-16 15:27:30
【问题描述】:

我使用SVM-light 编写教程将数据分为两类:

训练文件:

 +1 6357:1 8984:1 11814:1 15465:1 16031:1
 +1 6357:1 7629:0.727 7630:42 7631:0.025
 -1 6357:1 11814:1 11960:1 13973:1
 ...

和测试文件:

 0 6357:1 8984:1 11814:1 15465:1
 0 6357:1 7629:1.08 7630:33 7631:0.049 7632:0.03
 0 6357:1 7629:0.069 7630:6 7631:0.016
 ...

通过执行svm_learn.exe train_file model -> svm_classify.exe test_file model output 我在output 中得到了一些意想不到的值:

 -1.0016219
 -1.0016328
 -1.0016218
 -0.99985838
 -0.99985853

火车文件中的类不应该是 +1 或 -1 吗?或-1和+1之间的某种浮点数手动选择0作为分类或其他数字的解决方案,但对我来说,当所有数字都接近-1并且其中一些数字时,这是非常出乎意料的情况甚至更少。

UPD1: 据说如果结果数是负数,那么它的类-1,如果是正数-+1。还在质疑这个符号后面的值是什么意思?我刚刚开始探索 SVM,所以这可能是一个简单或愚蠢的问题 :) 如果我的预测非常糟糕,我应该采取哪些步骤 - 另一个内核?或者也许其他一些选项可以使 SVM-light 与我的数据更相关?

【问题讨论】:

    标签: machine-learning svm svmlight


    【解决方案1】:

    简答:只需取结果的符号

    更长的答案: SVM 接受输入并返回 real-valued 输出(这就是您所看到的)。

    在训练数据上,学习算法尝试将所有正例的输出设置为 >= +1,所有负例的输出设置为 +1 的负点)是错误(学习算法试图在训练数据上最小化) .

    因此,在测试时,如果结果小于 -1,您可以合理地确定它是一个反例。如果它大于 +1,您可以合理地确定它是一个正面的例子。如果介于两者之间,则 SVM 对此非常不确定。通常,您必须做出决定(不能说“我不知道”),因此人们使用 0 作为正面和负面标签之间的分界线。

    【讨论】:

      猜你喜欢
      • 2011-12-08
      • 1970-01-01
      • 1970-01-01
      • 2018-06-14
      • 2021-08-12
      • 2021-05-17
      • 1970-01-01
      • 2014-07-10
      • 2018-12-24
      相关资源
      最近更新 更多