我正在使用Weka Java API。我在Instances对象(数据集)data
上训练了一个Bayesnet。
/**
* Initialization
*/
Instances data = ...;
BayesNet bn = new EditableBayesNet(data);
SearchAlgorithm learner = new TAN();
SimpleEstimator estimator = new SimpleEstimator();
/**
* Training
*/
bn.initStructure();
learner.buildStructure(bn, data);
estimator.estimateCPTs(bn);
qazxsw poi返回节点的边缘分布。理想情况下,假设节点qazxsw poi有3个可能的值,并且其节点索引为0.那么,getMargin
应返回类似A
的内容。
但是,就我而言,当我使用以下代码打印所有节点的边缘分布时。
bn.getMargin(0)
它回来了
[0.3, 0.4, 0.3]
有人之前已经看过这个或者可能会给我一些提示,为什么会发生这种情况?
我的数据是名义上的,大多数列都有很多类/值。
我想我在GUI中看到过这样的东西。当我有MaxnrofParents = 2时,我可以看到贝叶斯编辑器中的边距,但如果我使用MaxnrofParents更大的东西,边距没有显示任何东西。