机器学习挑战:在java/groovy中诊断程序(数据挖掘,机器学习)

我计划用Java开发程序,它将提供诊断。数据集分为两部分,一部分用于训练,另一部分用于测试。我的程序应该学会从训练数据中进行分类(BTW在新列中包含30个问题的答案,新行中的每个记录的最后一列将是诊断0或1,在测试部分的数据诊断列将是空的 - 数据集包含大约1000条记录),然后在测试部分数据中进行预测:/

我从来没有做过类似的事情,所以我将不胜感激任何关于类似问题解决方案的建议或信息。

我正在考虑Java机器学习库或Java数据挖掘包,但我不确定它是否是正确的方向...?我仍然不知道如何应对这个挑战...

请指教。

万事如意!


答案 1

我强烈建议你使用Weka来完成你的任务
它是一个机器学习算法的集合,具有用户友好的前端,可以促进许多不同类型的功能和模型选择策略
你可以用这个做很多非常复杂的事情,而不必真正做任何编码或数学
制作者还出版了一本相当不错的教科书,解释了数据挖掘
的实际方面 一旦你掌握了它的窍门,你可以使用它的API将它的任何分类器集成到你自己的java程序中。


答案 2

嗨,正如江恩·比尔纳所说,这是一个分类问题。据我所知,满足您需求的最佳分类算法是Ross Quinlan算法。从概念上讲,它非常容易理解。

对于分类算法的现成实现,最好的选择是Weka。http://www.cs.waikato.ac.nz/ml/weka/。我研究过Weka但没有使用,因为我发现它有点太晚了。

我使用了一个更简单的实现,称为JadTi。它适用于较小的数据集,例如您的数据集。我已经用过很多次了,所以可以自信地说出来。JadTi可以在以下位置找到:

http://www.run.montefiore.ulg.ac.be/~francois/software/jaDTi/

话虽如此,您的挑战将是通过Web构建一个可用的界面。为此,数据集的用途有限。数据集基本上工作前提是您已经拥有训练集,并且您只需一步即可输入新的测试数据集,然后立即获得答案。

但是我的应用程序,也可能是你的应用程序,是一步一步的用户发现,具有在决策树节点上来回移动的功能。

为了构建这样的应用程序,我从训练集创建了一个 PMML 文档,并构建了一个 Java 引擎,该引擎遍历树的每个节点,要求用户提供输入(文本/无线电/列表),并将这些值用作下一个可能的节点谓词的输入。

PMML标准可以在这里找到:http://www.dmg.org/ 这里你只需要树模型。NetBeans XML 插件是用于 PMML 创作的良好模式感知编辑器。Altova XML可以做得更好,但成本是$$。

也可以使用RDBMS来存储数据集并自动创建PMML!我没有尝试过。

祝您的项目好运,如果您需要进一步的输入,请随时告诉我。


推荐