有谁知道使用 WEKA API 从数据中学习贝叶斯网络的“正确”程序?我在 WEKA 文档中找不到好的说明。
根据文档和每个功能“应该”做什么,我认为这会起作用:
Instances ins = DataSource.read( filename );
ins.setClassIndex(0);
K2 learner = new K2();
MultiNomialBMAEstimator estimator = new MultiNomialBMAEstimator();
estimator.setUseK2Prior(true);
EditableBayesNet bn = new EditableBayesNet( ins );
bn.initStructure();
learner.buildStructure(bn, ins);
estimator.estimateCPTs(bn);
但事实并非如此。我已经尝试过这个和其他变体,并且我不断得到ArrayIndexOutOfBoundsException
或NullPointerException
在 WEKA 代码中的某个地方,所以我错过了什么?