有誰知道使用WEKA API從數據中學習貝葉斯網絡的「正確」過程嗎?我無法在WEKA文檔中找到好的說明。如何使用WEKA API學習貝葉斯網絡(結構+參數)?
基於文檔和每個功能是「應該」做什麼,我想這會工作:
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代碼內的某個地方,所以我錯過了什麼?
我一直在尋找資源開始使用貝葉斯網絡。將看看你提到的WEKA API。 – r3st0r3 2011-05-26 19:25:56
WEKA GUI本身是否使用API?如果是這樣,你可以用它作爲例子。你也可以看一看源代碼,看看它是否有意義。 – 2011-05-26 19:45:39