Java开发者必看!机器学习开发库精选!
摘要:现如今,拥有深度学习和机器学习领域的技术是科技界的趋势之一,并且企业则希望雇佣一些拥有良好的机器学习知识背景的程序开发工程师。本文将介绍一些目前流行的、强大的基于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
译者:奥特曼,审校:袁虎。
文章为简译,更为详细的内容,请查看原文
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
HashMap源码学习笔记
最近忙于各种事情,只能陆陆续续也看了一些东西,Java的HashMap应该算比较基础的东西,也是最近在看<<Redis设计与实现>>,其中也有HashMap的数据结构,又回去看了一下Java本身实现,这篇也就再记录一下。 Java数据结构中定义了Map接口,该接口有四个常用实现类:HashMap,Hashtable,LinkedHashMap和TreeMap。 针对上面四个常用类简单的介绍一下: 1. Hashtable: 从下面的Java doc就可以看出,其本身是线程安全的,但是并发性不如concurrent中的ConcurrentHashMap,而不需要线程安全时候,也推荐使用HashMap,故可以算是一个遗留类,不推荐使用。 Hashtable Java doc 2. LinkedHashMap:它是HashMap的一个子类,保存了记录的插入顺序,在用Iterator遍历LinkedHashMap时,先得到的记录肯定是先插入的。 LinkedHashMap java doc 3. TreeMap:TreeMap实现SortedMap接口,能够把它保存的记...
- 下一篇
SpringBoot|第一章:第一个SpringBoot 应用
springboot简单介绍 概述 随着动态语言的流行(Ruby、Groovy、Scala、Node.js),Java的开发显得格外的笨重:繁多的配置、低下的开发效率、复杂的部署流程以及第三方技术集成难度大。 在上述环境下,Springboot应运而生。它使用”习惯优于配置”(项目中存在大量的配置,此外还内置一个习惯性的配置,让你无须手动进行配置)的理念让你的项目快速运行起来。使用springboot很容易创建一个独立运行(运行jar,内嵌servlet容器)、准生产级别的基于Spring框架的项目,使用springboot你可以不用或者只需要很少的Spring配置。 Spring Boot 的核心功能 独立运行的Spring项目 Spring Boot可以以jar包的形式独立运行,运行一个Spring Boot项目只需要通过java -jar xx.jar。 内置Servlet容器 Spring Boot可选择内嵌Tomcat、Jetty或者Undertow,这样无须以war包形式部署。 提供starter简化maven配置 Spring提供了一系列的starter pom来简化ma...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS7设置SWAP分区,小内存服务器的救世主