所以我在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 中找到此信息,它将指向库的联系人。