14 data-visualization classification decision-tree weka
我在网上使用的数据集很少,并试图可视化树.但是,它根本不让我可视化树选项.任何人都可以通过使用在线提供的数据集指导我如何在weka中获取树形图?
chl*_*chl 18
例如,请查看http://maya.cs.depaul.edu/classes/ect584/weka/classify.html.
首先,您必须以iris
通常的方式拟合您的决策树(我在数据集上使用了J48分类器).在结果列表面板(Weka explorer的左下角)中,右键单击相应的输出并选择"Visualize tree",如下所示.
如果您已经安装了Prefuse插件,您甚至可以在更漂亮的布局上可视化您的树.
Lon*_*guy 10
如果您想通过java程序执行此操作,请编写以下程序:
import java.awt.BorderLayout;
import java.io.BufferedReader;
import java.io.FileReader;
import weka.classifiers.*;
import weka.classifiers.trees.J48;
import weka.core.Instances;
import weka.gui.treevisualizer.PlaceNode2;
import weka.gui.treevisualizer.TreeVisualizer;
public class WekaJ48 {
public static void main(String args[]) throws Exception {
// train classifier
J48 cls = new J48();
Instances data = new Instances(new BufferedReader(new File
Reader("D:\\sample.arff")));
data.setClassIndex(data.numAttributes() - 1);
cls.buildClassifier(data);
// display classifier
final javax.swing.JFrame jf =
new javax.swing.JFrame("Weka Classifier Tree Visualizer: J48");
jf.setSize(500,400);
jf.getContentPane().setLayout(new BorderLayout());
TreeVisualizer tv = new TreeVisualizer(null,
cls.graph(),
new PlaceNode2());
jf.getContentPane().add(tv, BorderLayout.CENTER);
jf.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent e) {
jf.dispose();
}
});
jf.setVisible(true);
tv.fitToScreen();
}
}
Run Code Online (Sandbox Code Playgroud)
您将看到一个弹出窗口,显示树.