机器学习的挑战:在Java程序诊断/常规(数据挖掘,机器学习)
-
11-09-2019 - |
解决方案
作为您好江恩Bierner说,这是一个分类问题。最好的分类算法为您的需求我的就是知道,罗斯昆兰算法。它的概念很容易理解。
有关的分类算法关闭的,现成的实施方式中,最好的选择是Weka的。 http://www.cs.waikato.ac.nz/ml/weka/一>。我研究了Weka但不使用,因为我发现它有点太晚了。
我用了一个更简单的实现,叫做JadTi。它适用于较小的数据集,如你相当不错的。我已经用它相当多,所以可以自信地告诉如此。 JadTi,可以发现:
HTTP://www.run.montefiore.ulg。 ac.be/~francois/software/jaDTi/
说了这么多,你的挑战将是建立在网络可用的接口。要做到这一点,该数据集将是有限的使用。该数据基本定在工作,你有训练集已经的前提下,你可以喂一步到位的新的测试数据集,你得到的答案(星期日)在紧接。
但我的应用程序,你大概也就是一步步的用户发现,使用功能,来回走决策树节点上。
要建立这样一个程序,我从我的训练集创建的PMML文件,并建立了一个Java引擎横穿询问用户给出的输入(文/收音机/列表)树的每个节点,并使用值输入到下一个可能的节点谓词。
在PMML标准可以在这里找到: http://www.dmg.org/ 这里,您需要唯一的TreeModel。 NetBeans的XML插件是PMML创作了一个好的模式的编辑器。 Altova的XML可以做一个更好的工作,但成本$$。
另外,也可以使用一个RDBMS来存储数据集,并自动创建PMML!我还没有试过了。
与你的项目好运气,请随时让我知道如果你需要进一步的投入。
其他提示
有落入“机器学习”的范畴各种算法,并为您的具体情况取决于您正在处理的数据的类型,是正确的。
如果您的数据主要由一组问题的映射到一组每一个诊断可以是/否,那么我认为可能的工作方法包括神经网络方法自动建立一个基于决策树测试数据
我想看看一些标准文本,如罗素和Norvig表示的(“人工智能:一种现代方法”)等介绍给AI /机器学习,看看你是否可以很容易地适应他们提到的算法您的特定数据。又见O'Reilly的“集体智慧编程”为一个或两个算法的一些示例Python代码,可能是适用于你的情况。
如果你能读西班牙,墨西哥出版社Alfaomega也纷纷发表各种良好的AI相关的介绍在最近几年。
这是一个分类问题,而不是真的数据挖掘。一般的方法是从每个数据实例提取特征,让分类算法学习从功能模型和结果(这对你来说是0或1)。想必您的每30个问题将是它自己的特点。
有您可以使用许多分类技术。支持向量机是流行的是最大熵。我还没有使用的Java机器学习库,但一眼我没有看到任何的这些。该OpenNLP项目具有最大熵的实现。 LIBSVM有支持向量机实现。你几乎肯定要你的数据修改的东西,该库能理解。
祝你好运!
更新:我同意与其他评论者认为罗素和Norvig表示是一个伟大的AI的书,讨论了这一点。主教的“模式识别和机器学习”讨论分类问题进行了深入,如果你有兴趣的下降和肮脏的细节。
你的任务是对经典的神经网络,其目的首先是要解决究竟分类任务。神经网络具有相当简单的实现在任何语言,它是“机器学习”,比其他任何东西更接近人工智能的“主流”。 你只需要实现(或获得现有的实现)非标准的神经网络,例如学习多层网络的误差反向传播,并给它学习的例子周期。经过这样的学习一段时间后,你会得到它的工作实际例子。 你可以阅读更多有关从这里开始的神经网络: http://en.wikipedia.org/wiki/Neural_network http://en.wikipedia.org/wiki/Artificial_neural_network 你也可以链接到这里很多现成的实现: http://en.wikipedia.org/wiki/Neural_network_software