weka分类器A1DE上-S参数的真正正确用法是什么?

时间:2014-12-12 21:03:20

标签: machine-learning classification weka

所以我在Windows机器上使用weka 3.7.11(并使用cygwin运行bash脚本),我发现AODE分类器(在此版本的weka中,来自附加组件)存在不一致封装)。

使用来自GUI的Averaged N-Dependencies Estimators,我得到以下配置(来自在Weka Explorer中正常工作的示例):

weka.classifiers.meta.FilteredClassifier -F "weka.filters.unsupervised.attribute.Discretize -F -B 10 -M -1.0 -R first-last" -W weka.classifiers.bayes.AveragedNDependenceEstimators.A1DE -- -F 1 -M 1.0 -S

所以我修改了这个以在我的bash脚本中获取以下命令:

java -Xmx60G -cp "C:\work\weka-3.7.jar;C:\Users\Oracle\wekafiles\packages\AnDE\AnDE.jar" weka.classifiers.meta.FilteredClassifier \
  -t train_2.arff -T train_1.arff \
  -classifications "weka.classifiers.evaluation.output.prediction.CSV -distribution -p 1 -file predictions_final_multi.csv -suppress" \
  -threshold-file umbral_multi.csv \
  -F "weka.filters.unsupervised.attribute.Discretize -F -B 10 -M -1.0 -R first-last" \
  -W weka.classifiers.bayes.AveragedNDependenceEstimators.A1DE -- -F 1 -M 1.0 -S

但这给了我错误:

Weka exception: No value given for -S option.

这很奇怪,因为这不是GUI的问题。在GUI中,信息框显示-S它只是一个标志("可以通过使用-S选项&#34实现包容解决;)所以它不应该期待任何数字,这与我使用资源管理器所得到的一致。

那么,使用命令行时,-S选项的处理是什么?看看weka给出的错误文本,我发现了这个:

Options specific to classifier weka.classifiers.bayes.AveragedNDependenceEstimators.A1DE:

-D
        Output debugging information

-F <int>
        Impose a frequency limit for superParents        (default is 1)
-M <double>
        Specify a weight to use with m-estimate (default is 1)

-S <int>
        Specify a critical value for specialization-generalilzation SR (default is 100)

-W
        Specify if to use weighted AODE

所以看起来这个类有两种不同的工作方式,具体取决于我使用的方法(GUI与命令行)。

我发现的解决方案,至少在此期间,是在我的脚本上写-S 100。这与将-S放在GUI中真的相同吗?

提前致谢。
JM

1 个答案:

答案 0 :(得分:1)

我玩过这个分类器,可以确认你的体验与我在这里所拥有的一致。在GUI中,-S选项(包含分辨率)在命令提示符执行时不需要参数(特化 - 通用化SR)。

它们听起来不像是相同的参数,因此如果您想了解有关这些参数的更多信息,可能需要向第三方软件包的开发人员提出此问题。您可以从工具 - &gt;中找到此信息。包管理器 - &gt; AnDE,它将指向您的联系人。