所以我在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
答案 0 :(得分:1)
我玩过这个分类器,可以确认你的体验与我在这里所拥有的一致。在GUI中,-S选项(包含分辨率)在命令提示符执行时不需要参数(特化 - 通用化SR)。
它们听起来不像是相同的参数,因此如果您想了解有关这些参数的更多信息,可能需要向第三方软件包的开发人员提出此问题。您可以从工具 - &gt;中找到此信息。包管理器 - &gt; AnDE,它将指向您的联系人。