【发布时间】:2015-02-11 15:52:50
【问题描述】:
所以我在 Windows 机器上使用 weka 3.7.11(并使用 cygwin 运行 bash 脚本),我发现关于 AODE 分类器的不一致(在这个版本的 weka 中,来自附加包) .
使用 GUI 中的平均 N 依赖估计器,我得到以下配置(来自在 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 选项实现包含分辨率”),所以它根本不应该期望任何数字,这与我使用的一致探险家。
那么,在使用命令行时,-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 里一样吗?
提前致谢。
杰米
【问题讨论】:
标签: machine-learning classification weka