如何解释 Weka 中的 SVM 输出?

Posted

技术标签:

【中文标题】如何解释 Weka 中的 SVM 输出?【英文标题】:How to interpret SVM output in Weka? 【发布时间】:2021-11-24 04:02:28 【问题描述】:

我在 Weka (SMO) 中有一个支持向量模型,我想从这个输出中提取知识:

=== Classifier model (full training set) ===
    SMO
    Kernel used:
      Puk kernel
    Classifier for classes: Positive, Negative
    BinarySMO
          0.9349 * <0.364865 0 0 1 0 1 0 0 0 1 1 1 0 1 1 1 > * X]
     +       0.743  * <0.486486 0 0 1 0 0 1 0 0 0 0 0 0 1 0 1 > * X]
     +       0.8578 * <0.391892 0 0 1 0 1 1 1 0 1 0 1 0 1 1 1 > * X]
     -       0.815  * <0.297297 1 0 1 0 1 0 0 0 1 0 1 0 1 1 0 > * X]
     -       0.2347 * <0.391892 1 0 1 0 1 1 0 1 0 0 1 1 1 1 1 > * X]
     +       1.1502 * <0.527027 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 > * X]
     +       0.6922 * <0.554054 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 > * X]
     .....
     -       0.3291 * <0.594595 1 1 1 1 0 0 1 1 0 0 0 1 0 1 0 > * X]
     +       0.9296 * <0.364865 0 0 1 1 1 0 1 0 1 0 0 0 1 0 1 > * X]
     +       0.6504 * <0.351351 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 > * X]
     -       0.0333 * <0.27027 1 1 0 0 0 1 0 1 0 0 0 1 1 1 1 > * X]
     +       0.0085 * <0.513514 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 > * X]
     +       0.8176 * <0.72973 0 1 1 0 1 1 0 1 0 0 0 1 0 0 1 > * X]
     -       0.4812 * <1 1 0 0 1 1 0 1 1 0 0 1 0 0 0 1 > * X]
     -       0.3286 * <0.256757 1 0 0 1 0 1 0 0 0 0 1 1 1 1 1 > * X]
     .........
     -       0.1838 * <0.635135 0 1 0 1 0 1 0 1 1 0 1 0 0 0 0 > * X]
     -       0.0976 * <0.189189 1 1 0 1 1 1 0 0 1 1 1 1 0 1 1 > * X]
     -       0.0036 * <0.364865 1 1 0 1 0 1 0 1 1 0 1 1 0 1 0 > * X]
     -       0.0157 * <0.554054 0 1 0 1 0 1 0 1 1 0 1 1 1 1 1 > * X]
    .........
     -       0.0167 * <0.621622 0 1 1 0 0 0 1 1 0 1 1 1 0 0 0 > * X]
     +       0.2005 * <0.5 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 > * X]
     -       0.589 
Number of support vectors: 378
Number of kernel evaluations: 131997 (92.5% cached)

如何解释这个输出?

提前致谢

【问题讨论】:

【参考方案1】:

查看 SMO 的 toString() 方法,了解如何构造输出。查看Puk kernel 本身 (publication),看看它的计算是如何完成的。

分类器的文本输出通常仅用于提供信息的目的(它是可选的,对分类器没有影响)。人们通常将经过训练的模型直接应用于新数据,而不是试图理解输出(尤其是支持向量机)。

【讨论】:

感谢您的回答!整个方法似乎很难理解。我想知道:+- 是什么意思? +/-* 之间的较低数字是否比较高的数字最差? 不知道。一本关于支持向量机的介绍性教科书可能会对此有所了解。

以上是关于如何解释 Weka 中的 SVM 输出?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Weka 分类器中使用 svm?

Weka、SVM 技术输出

如何在 Eclipse 中启动基于 SVM 的分类项目?

如何在 Weka 中构建 SVM 分类器以仅考虑数据集中的某些特征?

WEKA中的预测结果是啥意思?

我需要在 weka 中制作一个 SVM 来使用 Java 过滤文档