[img]http://dl.iteye.com/upload/attachment/0080/0077/807e082d-9e85-33e5-a339-476199292ceb.png[/img]
Groovy代碼:
import weka.classifiers.Classifier
import weka.classifiers.trees.J48
import weka.core.Instances
import weka.core.converters.ArffLoader
import weka.gui.treevisualizer.PlaceNode2
import weka.gui.treevisualizer.TreeVisualizer
import javax.swing.JFrame
import java.awt.BorderLayout
/**
Weka的決策樹分析功能測試
@author bruce.lin.chn
@version 2013-01-29
*/
Classifier classifier= new J48()
ArffLoader arffLoader=new ArffLoader()
arffLoader.setFile(new File("../cpu.with.vendor.arff"))
Instances instancesTraining=arffLoader.getDataSet()
instancesTraining.setClassIndex(0)
println "共加載:"+instancesTraining.numInstances().toString()
classifier.buildClassifier(instancesTraining)
println "訓練完畢!"
TreeVisualizer treeVisualizer=new TreeVisualizer(null, classifier.graph(), new PlaceNode2())
JFrame jFrame=new JFrame("決策樹測試:J48")
jFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE)
jFrame.setSize(1024, 600)
jFrame.getContentPane().setLayout(new BorderLayout())
jFrame.getContentPane().add(treeVisualizer, BorderLayout.CENTER)
jFrame.setVisible(true)
treeVisualizer.fitToScreen()