我正在从命令行运行 WEKA 以创建用于训练的贝叶斯网络模型,然后使用该模型在单独的数据集上进行测试。贝叶斯网络使用带有简单估计器的 TAN 搜索选项。我的命令行训练调用如下所示:
java -cp weka.jar:mysql-connector-java-5.0.8-bin.jar
weka.classifiers.bayes.BayesNet -d BN_model -p 0 -distribution -t tr2.arff -D
-Q weka.classifiers.bayes.net.search.local.TAN -- -S BAYES
-E weka.classifiers.bayes.net.estimate.SimpleEstimator -- -A 1 > tr_preds
现在,我刚刚意识到我需要使用一个 FilteredClassifier,因为我想将实例 ID 添加到我的测试数据中。这就是我卡住的地方。我运行以下命令:
java -cp weka.jar:mysql-connector-java-5.0.8-bin.jar
weka.classifiers.meta.FilteredClassifier
-F weka.filters.unsupervised.attribute.Remove -R 1
-W weka.classifiers.bayes.BayesNet -d BN_model -p 1 -distribution -t tr2.arff -D
-Q weka.classifiers.bayes.net.search.local.TAN -- -S BAYES
-E weka.classifiers.bayes.net.estimate.SimpleEstimator -- -A 1 > tr_preds
我收到以下错误:
Weka exception: Illegal options: -S BAYES
为了排除故障,我删除了所有花哨的搜索选项和估计器,只使用默认设置运行贝叶斯网络分类器。这工作得很好,但这显然不是我需要的。很明显,我在正确构建此命令行语句时遇到问题。
你能告诉我我做错了什么吗?非常感谢!
最好的,弗朗西斯科