Weka、SVM 技术输出

Posted

技术标签:

【中文标题】Weka、SVM 技术输出【英文标题】:Weka, SVM technique output 【发布时间】:2017-10-01 02:20:30 【问题描述】:

我正在 Weka 使用 SVM

我有一些数据,我尝试使用 SVM(我尝试了不同的 C 值)技术来分析数据。但是输出完全让我感到困惑,这就是为什么我希望有所帮助。

这是 1 次多项式内核的输出:

Scheme:weka.classifiers.meta.CVParameterSelection -P "C 0.001 10.0 5.0" -X 10 -S 1 -W weka.classifiers.functions.SMO -- -C 0.7 -L 0.001 -P 1.0E-12 -N 0 -V -1 -W 1 -K "weka.classifiers.functions.supportVector.PolyKernel -C 250007 -E 1.0"


Classifier Options: -C 7.5003 -L 0.001 -P 1.0E-12 -N 0 -V -1 -W 1 -K "weka.classifiers.functions.supportVector.PolyKernel -C 250007 -E 1.0"
=== Summary ===    
Correctly Classified Instances          83               79.0476 %
Incorrectly Classified Instances        22               20.9524 %
Kappa statistic                          0.6555
Mean absolute error                      0.0487
Root mean squared error                  0.1549
Relative absolute error                 91.5633 %
Root relative squared error            100.2828 %
Total Number of Instances              105    

这是 2 次多项式内核的输出:

Scheme:weka.classifiers.meta.CVParameterSelection -P "C 0.001 10.0 5.0" -X 10 -S 1 -W weka.classifiers.functions.SMO -- -C 0.7 -L 0.001 -P 1.0E-12 -N 0 -V -1 -W 1 -K "weka.classifiers.functions.supportVector.PolyKernel -C 250007 -E 2.0"


Classifier Options: -C 2.5008 -L 0.001 -P 1.0E-12 -N 0 -V -1 -W 1 -K "weka.classifiers.functions.supportVector.PolyKernel -C 250007 -E 2.0"
=== Summary ===    
Correctly Classified Instances          87               82.8571 %
Incorrectly Classified Instances        18               17.1429 %
Kappa statistic                          0.7236
Mean absolute error                      0.0486
Root mean squared error                  0.1547
Relative absolute error                 91.4748 %
Root relative squared error            100.1845 %
Total Number of Instances              105    

这是高斯核和伽马值 1.0 的输出:

Scheme:weka.classifiers.meta.CVParameterSelection -P "C 0.001 10.0 5.0" -X 10 -S 1 -W weka.classifiers.functions.SMO -- -C 0.7 -L 0.001 -P 1.0E-12 -N 0 -V -1 -W 1 -K "weka.classifiers.functions.supportVector.RBFKernel -C 250007 -G 1.0"


Classifier Options: -C 2.5008 -L 0.001 -P 1.0E-12 -N 0 -V -1 -W 1 -K "weka.classifiers.functions.supportVector.RBFKernel -C 250007 -G 1.0"
=== Summary ===
   Correctly Classified Instances          87               82.8571 %
Incorrectly Classified Instances        18               17.1429 %
Kappa statistic                          0.721 
Mean absolute error                      0.0486
Root mean squared error                  0.1547
Relative absolute error                 91.4571 %
Root relative squared error            100.1651 %
Total Number of Instances              105     

这些是我的问题:

为什么“分类器选项:-Cxxxxx”中的分类器具有不同的 C 值?我认为这与我用“C 0.001 10.0 5.0”检查的 C 的值有关,但我可能是错的,我可能会得到错误的结论。我认为使用“C 0.001 10.0 5.0”它会尝试值 0.001、0.01、0.1、1.0 和 10.0。如果这是真的,为什么 C 的值是:7.5003 和 2.5008??

正确分类实例的百分比在所有不同的运行中都非常相似,我不明白为什么……这是什么意思?如果是 12%,我会认为 SVM 不是一种合适的技术(它不是线性可分的),但是 80%(更改参数后没有变化或变化很小)我不知道该怎么想……

如果我检查 Weka 的“可视化”中的数据,数据似乎不是线性可分的,但由于在使用 SVM 时转换了更多维度,我认为不可能从可视化中得出结论。

【问题讨论】:

【参考方案1】:

1) 是的,您使用 CVParameterSelection 在您的案例中尝试不同的参数,从 0.001 到 10 分 5 步。步数将是 0.001 + k * (10-0.001)/4),因为您的第一步已经定义为 0.001。如果您四舍五入以下值(对于 k= 0/1/2/3/4),您会发现它们合适。

步骤 1) 0.001

步骤 2) 2.50075

步骤 3) 5.005

步骤 4) 7.50025

步骤 5) 10.0

2) 如果你有 12% 的准确率,那会很奇怪。随机分类(假设您有平衡的数据)将导致 50%。我不能告诉你 82% 是否是一个好的结果,因为我不知道你的数据。

3)关于线性可分性的问题。这正是 SVM 如此出色的原因。具有正确内核的 SVM 将您的数据转换为更高的特征空间,以摆脱不可分离性。 RBF 内核甚至可以将您的数据转换为无限维特征空间。这就是为什么完美的线性分离总是是可能的。此时可能会发生过拟合。为了避免这种情况并达到良好的泛化效果,您需要使用复杂度参数 C。

在这里,您可以阅读有关最后一点的好 stackexchange 帖子的更多信息 https://stats.stackexchange.com/questions/80398/how-can-svm-find-an-infinite-feature-space-where-linear-separation-is-always-p

【讨论】:

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

SVM - 评分函数

weka 预测输出上的假阴性 (FN)

数据分享|WEKA信贷违约预测报告:用决策树随机森林支持向量机SVM朴素贝叶斯逻辑回归|附代码数据

WEKA中的支持向量机输入中的多种数据类型

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

weka的explorer运行j48算法后,输出如下类容,各是啥含义?