分类算是用的是BayesNet,如果用的是其他的算法,代码可能是不一致,具体的请参看
帮助文档http://massapi.com/source/weka-3-7-4/weka-src/src/main/java/weka/gui/beans/GraphViewer.java.html
我的分类算法用的是BayesNet,结构学习和CPT学习都是用默认的算法,所以有关算法的配置代码并没有给出。代码如下
public void throws Exception
{
BayesNet emptyNet=new BayesNet();
Instances data=new Instances(new BufferedReader(new FileReader("F:\\...\\dataTestTmp.arff")));
data.setClassIndex(data.numAttributes()-1);
emptyNet.buildClassifier(data);
final javax.swing.JFrame jf=new javax.swing.JFrame("Weka Classifier Tree Visualizer: BayesNet");
jf.setSize(500,400);
jf.getContentPane().setLayout(new BorderLayout());
GraphVisualizer vis=new GraphVisualizer();
vis.readBIF(emptyNet.graph());
vis.layoutGraph();
jf.getContentPane().add(vis,BorderLayout.CENTER);
jf.addWindowListener(new java.awt.event.WindowAdapter()
{
public void windowClosing(java.awt.event.WindowEvent e)
{
jf.dispose();
}
});
jf.setVisible(true);
return jf;
}
搞定,运行后直接会弹出一个对话框,在对话框中会显示Weka中的拓扑结构图,点击节点可以查看CPT表。