「如何实现流动式软件发布」线上课堂开课啦,快来报名参与课堂抽奖吧~ 了解详情
写点什么

Java 能用于机器学习和数据科学吗?

2020 年 4 月 28 日

Java能用于机器学习和数据科学吗?

虽然 Python 和 R 已经成为构建机器学习和数据科学应用程序的首选,但许多组织正转向使用 Java 开发来满足他们的需求。请阅读本文,了解如何做到的,以及为什么要这样做。


近年来,机器学习、数据科学和人工智能一直是人们谈论最多的技术。这也是理所当然的。科技领域的这些进步已经将自动化和业务流程提升到一个新的水平。各种规模的组织都投入了数百万美元进行研究和人员投入,以开发这些功能极其强大的数据驱动应用程序。


有许多不同的编程语言可用于开发机器学习和数据科学应用程序。虽然 Python 和 R 已经成为开发这些程序的首选,但许多组织正在转向使用 Java 开发来满足他们的需求。从企业级业务解决方案和导航系统到移动电话和应用程序,Java 几乎适用于每个技术领域。


在 20 世纪 90 年代初,一位名叫 James Gosling 的加拿大计算机科学家和他的团队在受雇于 Sun Microsystem(Oracle 旗下)时创建了 Java 语言。20 多年过去了,Java 仍然是当今排名最高、最赚钱的编程语言之一。


为什么选择 Java 用于数据科学和机器学习?

Java 是许多设备和应用程序背后无形的力量,这些设备和应用程序人们每天都在使用,并为人们的日常生活提供了动力。Java 不但可以用于机器学习和数据科学应用程序开发,而且 Java 也是很多开发人员的首选,原因有很多,包括:


  • Java 是用于企业开发的最古老的语言之一。一般来说,在发展和技术的世界里,“古老”意味着过时的意思。然而,事实并非如此。Java 的“古老”意味着很多公司可能在不知不觉中已经使用了大量的 Java 编程语言。基础设施、软件、应用程序和公司技术的许多其他工作部分可能已经构建在 Java 之上,这有助于简化集成并最大限度减少兼容性问题。

  • 数据科学和大数据是相辅相成的。大多数用于大数据的流行框架和工具通常都是用 Java 编写的,包括 Fink、Hadoop、Hive 和 Spark 等。

  • Java 可用于数据科学领域和整个数据分析的许多过程,包括数据清洗、数据导入和导出、统计分析、深度学习、自然语言处理和数据可视化等。

  • 开发人员认为,Java 虚拟机是机器学习和数据科学的最佳平台之一,因为它使开发人员能够跨多个平台编写完全相同的代码。它还允许他们以更快的速度创建自定义工具,并提供了大量有助于提高整体生产力水平的 IDE。

  • Java 8 的发布,带来了 Lambdas。Lambda 表达式赋予了开发人员管理 Java 语言的巨大能力。这极大地简化了开发人员对大型数据科学或企业项目的开发。

  • 作为一种强类型的编程语言,Java 确保了程序员对所处理的变量和数据类型的明确和具体化。有时候,强类型会与静态类型相混淆,强类型使管理大数据应用程序变得更容易,同时也简化了代码库的维护。它还可以帮助开发人员避免编写单元测试的需要。

  • 可伸缩性是编程语言的一个重要方面,开发人员在项目开始之前必须对此加以考虑。对于数据科学家和程序员来说,Java 使应用程序扩展变得更加容易。这使得它成为构建更大或更复杂的人工智能和机器学习应用程序的绝佳选择,特别是当它们是从头开始构建的时候。

  • 当今许多其他广泛用于数据科学和机器学习的编程语言并不是最快的选择。Java 非常适合这些速度要求很高的项目,因为它执行速度很快。目前许多最流行的网站和社交应用程序都依赖 Java 来满足其数据工程需求,包括 LinkedIn、Facebook 和 Twitter 等。

  • 生产代码库通用是用 Java 编写的。了解 Java 可以帮助开发人员了解数据是如何生成的,向生产代码库提交合并请求,并将机器学习解决方案部署到生产环境中。

  • Java 有许多可用于数据科学和机器学习 ide 库和工具例如,Weka 3 是一个完全基于 Java 的工作台,广泛用于机器学习、数据挖掘、数据分析和预测建模中的算法。Massive Online Analysis 是一款专门用于实时数据流数据挖掘的开源软件。


Java 是一种非常有用、快速且可靠的编程语言,可以帮助开发团队构建大量的项目。从数据挖掘到数据分析,再到机器学习应用程序的构建,Java 在数据科学领域的应用远远不止于此。对于这些任务,它是最受欢迎的语言之一,对此有很多原因。如果你要处理一个机器学习项目,可以考虑使用 Java。你将会惊讶地发现,Java 会让你受益匪浅。


读者的声音

Pablo Ernesto Vigneaux Wilton


Java 有很多问题,比如生产效率低、代码维护能力差等。众所周知,在一些公司中,为了速度更快,Python 代码后来被转写成 Java。但是,其他的选项是 C++(因为我认为它更好)、Cyton 或 Go,即便如此,如果要跟我打赌的话,我更喜欢的是 Julia,这是为 DSML 创建的一种快速语言。


Ralf Klinkenberg


我完全同意作者的观点,即 Java 是一种非常适合数据科学和机器学习应用的编程语言。我这有一个不错的例子,可以很好地解释这一点:机器学习和数据科学软件平台 RapidMiner 正是用 Java 实现的。RapidMiner 开源项目始于 2000 年,当时使用 Java,直到今天仍然使用 Java。


根据最近一次 KDnuggets 机器学习工具年度调查,RapidMiner 是第二大最流行的机器学习工具。RapidMiner 在全球 150 多个国家/地区拥有超过 65 万注册用户


所有主要行业的许多公司都将 RapidMiner 用于各种机器学习应用程序


因此,Java 显然非常适合开发复杂的企业级机器学习应用程序,并进行部署,将他们通入生产并维护它们(包括模型运维,即 ModelOps 或 MLOps)。


总而言之,Java 早在 20 年前就已经是构建机器学习工具和应用程序的一个很好的选择,并且多年来,随着越来越多可用的基于 Java 的机器学习库和工具的出现,Java 已经成为实现企业级机器学习解决方案的更好选择。


但是,如果你不想重新发明轮子,也不想重复实现他人早已实现的东西,你可能也会想知道,你是否要在一开始就用一种编程语言来编写解决方案。相反,你可能会考虑使用像 RapidMiner Studio 这样的可视化机器学习流程设计环境(通过拖放进行可视化编程,并带有内置的智能自动推荐系统,用于机器学习过程设计中的下一个最佳步骤,还带有像 AutoModel 这样的智能助手,用于自动找到机器学习任务的最佳算法和参数化),这极大地加快了从想法到解决方案再到部署的过程,并且使维护变得更加容易:可视化的数据处理流程显然比很多页的源码更容易掌握和维护。我推荐大家尝试一下 RapidMiner Studio 或 RapidMiner Go,亲自体验一下。


作者介绍:


Malcom Ridgers 是专门从事软件外包行业的技术专家。他能接触到最新的市场消息,并对创新和科级企业的下一步发展有着敏锐的眼光。


原文链接:


https://www.kdnuggets.com/2020/04/java-used-machine-learning-data-science.html


2020 年 4 月 28 日 08:002570
用户头像
陈思 InfoQ编辑

发布了 576 篇内容, 共 212.3 次阅读, 收获喜欢 1212 次。

关注

评论 1 条评论

发布
暂无评论
发现更多内容

看完了进程同步与互斥机制,我终于彻底理解了 PV 操作

飞天小牛肉

Java 程序员 面试 操作系统

共筑“新基建” 京东云全面开启渠道合作伙伴招募计划

京东科技开发者

云服务

马特机器人系统开发(成品案例,快速上线)

系统开发咨询1357O98O718

算法攻关-最长公共子序列_1143

小诚信驿站

刘晓成 小诚信驿站 28天写作 算法攻关 最长公共子序列

Python 的特殊变量 __name__

HoneyMoose

GO训练营第9周——网络编程

Glowry

2021 OS 大赛来了,为中国操作系统发展按下加速键

InfoQ写作平台官方

活动专区

Nirvana NA公链 NAC公链的两面观

区块链第一资讯

「SaaS第一股」微盟集团财报业绩大涨,超预期财报揭示多元投资布局

ToB行业头条

SaaS 微盟

Continue 玩转像素点,Python 图像处理学习的第 3 天

梦想橡皮擦

28天写作 3月日更

Wireshark 数据包分析学习笔记Day15

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

《2020年IT行业项目管理调查报告》重磅发布

禅道项目管理

开源 项目管理 项目 调查报告 互联网行业薪资

高频量化交易系统开发功能丨量化交易机器人系统开发详情

系统开发咨询1357O98O718

产品经理训练营 Week9 作业

Mai

产品经理训练营 Week9 学习心得

Mai

Python基础之:Python的数据结构

程序那些事

Python 程序那些事 python数据结构

@Component,@Service等注解是如何被解析的?

Java小咖秀

spring 面试 工作 注解 经验

全球币系统开发案例(源码)

系统开发咨询1357O98O718

翻译:《实用的Python编程》06_04_More_generators

codists

Python

GO训练营第8周——分布式缓存与事务

Glowry

JVM - 类加载机制

insight

3月日更

繁忙的三月

IT蜗壳-Tango

3月日更 IT蜗壳教学

设计有意义的选择——再谈心流

Justin

心理学 28天写作 游戏设计

GO训练营第6、7周——可用性设计

Glowry

企业大数据实战:Kyuubi 与 Spark ThriftServer 的全面对比分析

网易数帆

大数据 spark Kyuubi Thrift HiveServer2

后台产品导航栏原型设计小教程

lenka

3月日更

Go训练营第5周——评论系统架构设计

Glowry

(28DW-S8-Day27) 销售流程重整

mtfelix

28天写作

超简单的网站暗黑模式,它真的超简单!

HelloGitHub

前端

华为云数据库GaussDB(for openGauss):初次见面,认识一下

华为云开发者社区

数据库 分布式 华为云 GaussDB(for openGauss) 开源数据库

手机

ES_her0

28天写作 3月日更

Java能用于机器学习和数据科学吗?-InfoQ