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



所以我在Windows机器中使用weka 3.7.11(并使用cygwin运行bash脚本(,我发现AODE分类器不一致(在这个版本的weka中,它来自一个附加包(。

使用来自 GUI 的平均 N 依赖估计器,我得到了以下配置(来自在 Weka 资源管理器中运行良好的示例(:

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:workweka-3.7.jar;C:UsersOraclewekafilespackagesAnDEAnDE.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 选项实现包容分辨率"(,所以它根本不应该期望任何数字,这与我使用资源管理器得到的一致。

那么,使用命令行时-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

我玩过这个分类器,可以确认你现在所经历的与我在这里的一致。 在 GUI 中,-S 选项(包含分辨率(不需要参数,而命令提示符(专用化泛化 SR(不需要参数。

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

最新更新