问题 在java中制作决策树的最佳学习算法?


我有一个数据集,其中包含年龄,城市,儿童年龄等信息以及结果(确认,接受)。

为了帮助“工作流程”的模型化,我想基于以前的数据集自动创建决策树。

我看一看 http://en.wikipedia.org/wiki/Decision_tree_learning 我知道这个问题显然不明显。

我只是想对一些算法或一些关于这个主题的库提出建议,这可以帮助我构建基于样本的决策树。


12872
2017-10-13 12:16


起源

“工作流程的模型化”让我很困惑。你到底想要达到什么目的?自动对新数据集进行排序或检查现有数据集是否具有正确的结果或什么? - Aaron Digulla
我们有一些有法律问题的数据集。只有当一个人的年龄低于18岁时,才会拒绝某些法律案件。这是一个明显的例子,但我们希望通过先前的判断自动重建决策树,以制定法律模型,然后对其进行编辑和完善。这是我们不想要神经网络的主要原因,因为我们无法回溯和证明选择 - X-Blaster


答案:


你应该看看 WEKA,一个免费的基于Java的监督学习套件。

将您的数据转换为Weka的简单文本后 .arff格式,您应该能够使用GUI或命令行界面来训练和测试该数据上的各种不同分类器,包括:

  • 决策树
  • 神经网络
  • 基于规则的系统
  • 支持向量机(SVM)
  • 各种类型的回归

尝试使用此界面可以让您轻松尝试不同的分类器和训练参数,以确定哪些分类器和训练参数对您的数据执行最佳。

你也可以 使用API​​将Weka集成到您自己的源代码中


14
2017-10-13 12:36



我想在Android平台上实现这样的代码,但weka对于android来说太庞大了(堆空间)..有没有办法可以通过其他方式运行它 - i_raqz
@raqz:嗯,你可以在本地机器上构建你的决策树,然后以java源代码的形式导出树并在Android上运行它。但如果您真的想在Android上进行培训,这将无济于事 - 您可能必须找到Weka的替代方案。也许只是决策树的东西?谷歌搜索“决策树java”显示至少一些结果。 - Nate Kohl


如果您想比较Weka的不同类型决策树的效果,请参阅TunedIT.org中收集的基准测试结果:

http://tunedit.org/results?d=UCI&a=Weka*tree

使用下拉列表和算法/数据集的名称模式来选择应该显示哪些结果。


2
2018-05-17 14:21