gpt4 book ai didi

weka - 在 WEKA 中使用带贝叶斯网络的 FilteredClassifier

转载 作者:行者123 更新时间:2023-12-04 05:07:44 26 4
gpt4 key购买 nike

我正在从命令行运行 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

为了解决问题,我删除了所有花哨的搜索选项和估计器,并使用默认设置运行贝叶斯网络分类器。这工作正常,但显然不是我需要的。很明显,我在正确构建此命令行语句时遇到了问题。

你能告诉我我做错了什么吗?非常感谢!

最好的,
弗朗西斯科

最佳答案

问题是您的命令行参数顺序错误。因为 -- -S BAYES是第一个 --之后 -W ,它认为这个选项属于 weka.classifiers.bayes.BayesNet ,这是一个非法选项。您忘记了 --之后 -W ...指定分类器的选项。

此外,一般选项如 -t tr2.arff -d BN_model -p 1 -distribution放在中间的某个地方,最好将它们放在您正在调用的类之后:

java -cp weka.jar:mysql-connector-java-5.0.8-bin.jar 
weka.classifiers.meta.FilteredClassifier
-t tr2.arff -d BN_model -p 1 -distribution
-F "weka.filters.unsupervised.attribute.Remove -R 1"
-W weka.classifiers.bayes.BayesNet
-- -D -Q weka.classifiers.bayes.net.search.local.TAN
-- -S BAYES
-E weka.classifiers.bayes.net.estimate.SimpleEstimator
-- -A 1

关于weka - 在 WEKA 中使用带贝叶斯网络的 FilteredClassifier,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15307287/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com