可视化Weka分类树

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)

您将看到一个弹出窗口,显示树.