遍历决策树得到规则集

Posted

技术标签:

【中文标题】遍历决策树得到规则集【英文标题】:Traversing decision tree to get rule set 【发布时间】:2017-02-12 09:15:11 【问题描述】:

我正在使用训练数据生成 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】:

Weka 是开源的。

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

如果您绝对需要访问某些内部数据结构(请注意这些数据结构可能会因版本而异),将它们公开是合法的。或者你甚至可以制作一个 API 来遍历树(如果这个真的还不存在;因为也存在可视化树的函数)然后为 Weka 做贡献以便其他人也可以使用它。

【讨论】:

以上是关于遍历决策树得到规则集的主要内容,如果未能解决你的问题,请参考以下文章

决策树方法的基本思想是啥

机器学习-决策树的基本思想

R:从决策树中提取规则

决策树 - 决策树如何在每个节点上选择规则

决策树

获取 R 中 rpart/ctree 包的每一行预测数据集的决策树规则/路径模式