コマンド ラインから 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
ここで、テスト データにインスタンス ID を追加したいので、FilteredClassifier を使用する必要があることに気付きました。これは私が立ち往生しているところです。私は以下を実行します:
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
トラブルシューティングを行うために、凝った検索オプションと推定器をすべて削除し、デフォルト設定でベイジアン ネットワーク分類器を実行しました。これはうまくいきましたが、明らかに私が必要としているものではありません。このコマンド ライン ステートメントを適切に作成するのに問題があることは明らかです。
私が間違っていることを教えてください。本当にありがとう!
ベスト、フランシスコ