因此,我在Windows机器上使用weka 3.7.11 (并使用cygwin运行bash脚本),我发现AODE分类器(在此版本的weka中,它来自一个附加软件包)存在不一致之处。
使用GUI中的平均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的问题。在图形用户界面中,信息框显示这只是一个标志("Subsumption can -S -S option"),所以它不应该期望任何数字,这与我使用资源管理器得到的结果是一致的。
那么,在使用命令行时,-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与Command Line)。
我找到的解决方案是在我的脚本上编写-S 100。这真的等同于在图形用户界面中放入-S吗?
提前谢谢。
JM
发布于 2014-12-16 07:12:59
我已经用过这个分类器了,我可以确认你在你那一端的体验和我这里的一致。在图形用户界面中,-S选项(包含分辨率)不需要参数,而命令提示符需要(专门化-泛化SR)。
它们听起来不像是同一个参数,所以如果您想了解有关这些参数的更多信息,您可能需要向第三方包的开发人员提出此问题。您可以在Tools -> Package Manager -> AnDE中找到此信息,它会将您指向该库的联系人。
https://stackoverflow.com/questions/27452071
复制相似问题