遍历决策树以获取规则集

时间:2016-10-04 09:07:59

标签: java machine-learning classification weka decision-tree

我正在使用火车数据生成ML决策树。根据我的用例,我需要查看决策树以获取有关数据分布的更多详细信息,例如每个节点的值等。我在java中使用weka生成树,我可以使用简单的print语句查看树结构,但是weka没有提供任何API来进一步查看树,树只是以字符串形式提供。我不想解析字符串,是否有任何其他可用的库可以帮助通过正常遍历将树转换为一组规则? 任何其他基于ML的库,它可以根据可用的数据生成树,让你偷看树进行分析,如规则提取?

BufferedReader reader = new BufferedReader(
                new FileReader("NewData.arff"));

        Instances data = new Instances(reader);
        reader.close();
        data.setClassIndex(data.numAttributes() - 1);
        String[] options = new String[1];
        options[0] = "-U";            // unpruned tree
        J48 tree = new J48();         // new instance of tree
        tree.setOptions(options);     // set the options
        tree.setMinNumObj(100);
        tree.buildClassifier(data);   // build classifier
        System.out.println(tree);   // Print tree as string

现在我想偷看树以获得一些结果。请帮助我使用任何可用的库。

1 个答案:

答案 0 :(得分:0)

Weka是开源的。

使用来源。根据需要自定义。

如果您绝对需要访问某些内部数据结构(请注意这些结构可能会在不同版本中发生变化),将它们公之于众是合法的。或者您甚至可以创建一个API来遍历树(如果真的还不存在;因为还存在可视化树的函数)然后贡献给Weka 所以其他人也可以使用它。