如何使用 Weka API 请求单个属性的输入以遍历决策树?
Posted
技术标签:
【中文标题】如何使用 Weka API 请求单个属性的输入以遍历决策树?【英文标题】:How do I use the Weka API to ask for inputs to single attributes to traverse a decision tree? 【发布时间】:2013-12-16 18:29:27 【问题描述】:我搜索了互联网,但无法找到使用 Weka API 中的工具访问树节点来实现以下功能的方法。
我使用 Weka API 创建 J48 决策树。我希望能够要求用户输入树根的选项。例如,我使用“labor.arff”训练文件来获取以下树,并希望作为用户基于圆圈节点进行输入。
假设,例如,用户输入“3”来回答这个问题。然后树应该处理这个输入并向右遍历树。
然后会提示用户响应下一个节点,在本例中为“statutory-holidays”。用户可以响应“6”。将处理此输入并遍历树的左分支。
然后程序会检测到它所在的节点是叶节点并打印出分类。
这一切都在 Java 的命令行中实现。
在这件事上的任何帮助将不胜感激!谢谢!
【问题讨论】:
【参考方案1】:您可以让 Weka 构建您的 J48 决策树,然后输出源代码。获得源代码后,您可以对其进行修改以满足您的需求!这个question显示了一个输出源代码和修改它的例子。
但是,如果决策树要频繁更改,这可能不是最佳选择。一个不错的选择可能是从用户那里获取输入来创建他们自己的实例并对其进行分类。不幸的是,使用这条路线,您最终可能会问比遍历树所需的问题更多的问题。
【讨论】:
感谢沃尔特的回复!不幸的是,我的程序必须即时接收各种树,并且还必须提出正确数量的问题……我试图修改 API 以获取树的根元素。你觉得这有用吗? 抱歉延迟回复。我没有任何修改API的经验,但是如果你要修改一些东西,为什么不研究修改输出源代码的接口呢?这是"sourceable interface"。是否可以使用它来输出一个执行您要求的对象?以上是关于如何使用 Weka API 请求单个属性的输入以遍历决策树?的主要内容,如果未能解决你的问题,请参考以下文章
在 Weka 中对单个实例进行分类(MultilayerPerceptron)
Java:如何使用 Weka 生成的模型组装/创建单个实例进行分类?