机器学习java
什么是开始使用Java机器学习的最佳工具?
他们已经存在了一段时间,但如今看来,每个人都在谈论人工智能和机器学习。 对于科学家和研究人员而言,它已经不再是秘密,几乎可以在任何新兴技术中实现。
在下面的文章中,我们将快速概述主要的Java机器学习框架,并显示入门起来很容易-无需重新设计轮子并从头开始创建自己的算法。
人民的人工智能
人工智能是一个广阔而凉爽的领域,已经存在了一段时间,但始终感到有些遥不可及,特别是为科学家而设。 如果要创建AI系统,则必须自己实现核心算法并对其进行训练,以识别模式,理解图像并处理自然语言。
最近围绕该领域的嗡嗡声和发展使非研究者更容易使用它。 现在,您可以轻松访问相关的算法和工具。 您必须知道自己在做什么,但是使用机器学习功能来增强应用程序要容易得多。
使机器运转
为了简化操作,我们决定重点介绍3个项目,以帮助您入门:
- Deeplearning4J(DL4J) – JVM的开源,分布式和商业级深度学习库
- BID数据项目 –一系列模式可实现快速,大规模的机器学习和数据挖掘
- Neuroph –面向对象的神经网络
顺便说一下,我们最近发布了另一个有趣的开源GitHub库列表,引起了我们的注意。 检查一下 。
1. DL4J –深度学习
DL4J是一种工具,可以帮助您配置由多层构成的深度神经网络。 它不仅为JVM带来了深度学习,还具有大规模的快速原型制作和自定义功能,同时侧重于配置之外的更多约定。
对于那些已经具备创建和使用深度神经网络所需理论但又不想自己实现算法的人来说,这是一个工具。 您可以使用它来解决涉及大量数据的特定问题并自定义神经网络属性。
DL4J用Java编写,使其与任何JVM语言(例如Clojure,Scala或Kotlin)兼容,并且与Hadoop和Spark集成。
可能的用例包括评级或推荐系统(CRM,adtech,防止流失),预测分析甚至欺诈检测。 如果您正在寻找真实的示例,可以查看Rapidminer 。 这是一个开放源数据平台,使用DL4J为其用户简化了预测分析过程。
设置新的神经网络就像创建新对象一样容易:
ultiLayerConfiguration conf = new NeuralNetConfiguration.Builder().iterations(1).weightInit(WeightInit.XAVIER).activation("relu").optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT).learningRate(0.05)// ... other hyperparameters.backprop(true).build();
2. BID数据项目
BID数据项目专为那些处理大量数据并且对性能敏感的人而设计。 加州大学伯克利分校的这个项目是硬件,软件和设计模式的集合,可实现快速大规模的数据挖掘。
第一个库是BIDMach ,它在单个节点或群集上保存许多常见机器学习问题的记录。 您可以使用它来管理数据源,通过CPU或GPU优化和分发数据。
它包含许多流行的机器学习算法,并且该团队正在开发分布式深度学习网络,图形算法和其他模型。
另外两个库是BIDMat ,这是一个快速矩阵代数库,专注于数据挖掘和BIDParse (GPU加速的自然语言解析器)。 该项目中的其他库包括可视化工具,以及使您可以在Spark甚至Android上运行的库。
BIDMach基准测试反复显示出比其他解决方案更好的结果,即使与在大型群集上运行的替代产品相比,即使使用一台计算机,也是如此。 完整的基准测试列表可在此处找到。
3. Neuroph
Neuroph是用于开发通用神经网络架构的轻量级Java框架。 该框架提供了一个Java库以及一个GUI工具(称为easyNeurons),您可以使用它来在Java程序中创建和训练自己的神经网络。
它包含一个开放源代码Java库,其中包含少量与基本神经网络概念相对应的基本类。 如果您刚刚开始使用神经网络,或者想知道它们的工作原理,那么这是一个很好的垫脚石。
您可以尝试Neuroph在线演示,并查看其实际工作原理。 剧透警报:界面看起来过时且过时,但是您可以用它来创造美好的事物。 此外,它还获得了2013年 “ 杜克选择奖” 。
别人呢?
如果这三个项目不是您的理想之选,而您正在寻找与项目有些不同的东西,请不要担心。 如果您在GitHub上搜索“ Machine learning ”,则会找到1,506个Java存储库,这些存储库可能为您提供了正确的工具。
例如,Airbnb的一个有趣的项目是aerosolve ; 旨在使人类友好的机器学习库。
开始使用新技术始终是麻烦的源头。 如果您需要有关异常的帮助,请务必查看Takipi的错误分析工具 。
最后的想法
每隔几年,就会有关于AI的新话题。 这次,它以机器学习,数据挖掘,神经网络等形式进行了增强,我们全力以赴。 这些库是开放源代码的事实意味着信息和功能都可以抢到,而您所要做的就是思考使用此功能可以做什么。
如果您知道其他有趣的项目,或者认为我们错过了任何事情,欢迎在下面的评论中听到。
翻译自: https://www.javacodegeeks.com/2016/07/get-started-java-machine-learning.html
机器学习java