摘要:现如今,拥有深度学习和机器学习领域的技术是科技界的趋势之一,并且企业则希望雇佣一些拥有良好的机器学习知识背景的程序开发工程师。本文将介绍一些目前流行的、强大的基于Java的机器学习库,希望给大家带来帮助。
事实上,Java已经成为开发新的机器学习算法的标准语言。学习Java语言有很多好处,并且在机器学习社区中也被人们所广泛接受,其优点包括:易维护、商业化、可读性、可移植性等等。根据2018年6月的编程语言排行榜TIOBE-index提供的数据显示,Java是目前最流行和使用最广泛的计算机编程语言,包括PHP、C语言、C++、Python和JavaScript等。如果企业想将机器学习业务整合到现有的Java商业应用程序中,那么就必须雇用Java开发人员。
下面我们将列出一些在现有的一些Java应用程序中实现机器学习的最佳类库。所有的这些库都是通过各种博客、网站和论坛的流行程度来编写的。
·Deeplearning4j
这个机器学习库是专门为Java设计的,它是为开发深度学习算法提供了广泛支持的计算机框架。当涉及到机器学习领域时,Deeplearning4j被认为是Java的最杰出的贡献者之一,它是一个开源的深度学习库,为各种商业环境同时带来深度神经网络和强化深度学习。它通常还可以作为Java的DIY工具,而且还具有应对所有那些无限制的虚拟并发任务的能力。
另外,该库对于识别语音、文字和声音中的情绪和模式是很有帮助的。它也可以用于发现时间序列数据中的异常,如财务数据,都清楚地表明它可以用于实际的商业场景而不是单纯作为一个研究工具。
·ELKI
ELKI代表了开发KDD应用程序的环境,KDD应用是由索引结构支持的,它是另一个由Java开发的用于数据挖掘的开源机器学习库。ELKI是专门为研究人员和学生设计的,它提供了大量的可详细配置的算法参数。
ELKI主要是由正在寻求建立一些相关的数据库的院校研究生使用的,它的目的是开发和评估高级的数据挖掘算法及其与数据库索引结构的合作和交互。使用ELKI的Java开发人员可以使用任意的数据类型、文件格式等等。
·JavaML
JavaML是一个拥有大量机器学习的和数据挖掘的算法的Java类库,它是由科研工作人员和Java开发者共同开发的。这个库不含有GUI,但它为每个类型的算法提供了清晰的接口。当我们比较JavaML与其它的聚类算法时,就会发现它是非常的简单直接,并且提供给任何新算法的简单实现。更多的情况下,这些算法的实现是需要简单明了的程度代码和添加适当的注释,因此它可以作为一个很好的参考。这个库是用Java开发的。
·JSAT
JSAT提供的是Java统计分析工具,是基于Java开发的用于解决机器学习问题的库,它可以在GPL3许可下使用,它的所有源代码都是包含在内的,没有任何外部依赖关系。JSAT拥有一个库中最大的机器学习算法集合,并被认为是运行最快的Java机器学习库之一,提供了高效性和灵活性。该库中的所有机器学习算法都是使用面向对象的框架来实现的。
·MALLET
MALLET库是用于机器学习的语言工具包,它是Java源代码的合集,可应用的领域包括统计NLP、主题建模、聚类分析、文档分类和各种其它用于文本的机器学习应用。MALLET也可以被称为用于文本的Java机器学习工具包,它是由马萨诸塞大学和宾夕法尼亚大学的学生开发的,并为那些诸如决策树、朴素贝叶斯和最大熵模型等各种算法提供支持。
·Mahout
Mahout是一个机器学习框架,带有集成的机器学习算法,能帮助开发人员创建自己的算法实现程序。Mahout还是一个代数相关的框架,被设计用来帮助数据科学工作者、数学工作者和分析人员运行自己的算法。这个机器学习库是可扩展的,并提供了丰富的组件集,允许你开发一个适用于各种机器学习算法的定制推荐系统。Mahout提供了高性能、灵活性和可扩展性,同时也是为商业化用途所设计的。
·Weka
Weka是另一个非常流行的基于Java的机器学习库,可以用于数据挖掘和数据分析工作,其中可以将算法直接应用到一个数据集,或者使用Java源代码自己创建新的算法。这个Java库包含了许多的工具,如:回归、聚类、分类和可视化等等。该库不仅是免费的,而且还便于使用,支持特征选择、异常检测、时间序列预测等等。Weka的全称是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),它可以被定义为用于预测建模和数据分析以及图形用户界面(GUI)的算法和工具的集合。
结论
在过去的几年中,机器学习领域有了新的趋势。事实上,上述大多数的库都是开源的,这就意味着开发者可以很容易地掌握机器学习的开发能力和获取到相关的技术信息,并且所有的开发者都必须得考虑利用这些库都可以做些什么。基于Java的机器学习技术将彻底改变应用程序的工作模式。
本文由北邮@爱可可-爱生活 老师推荐,阿里云云栖社区组织翻译。
文章原标题《Best Machine Learning Libraries For Java Development》
作者:Mantra Malhotra
译者:奥特曼,审校:袁虎。
文章为简译,更为详细的内容,请查看原文