写点什么

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:002331
用户头像
陈思 InfoQ编辑

发布了 575 篇内容, 共 202.6 次阅读, 收获喜欢 1178 次。

关注

评论 1 条评论

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

区块链教育 丨 首批区块链专业新生正式入学

CECBC区块链专委会

区块链技术 区块链教育

震精,京东T8工程师每天熬夜到天明,竟只是为一套编程实战文档

周老师

Java 编程 程序员 架构 面试

JDK 中的栈竟然是这样实现的?

王磊

Java 数据结构和算法

从联想ThinkStation工作站,窥见工具文明的新纪元

脑极体

spring-boot-route(十)多数据源切换

Java旅途

Java Spring Boot

来不及解释了,快上车!力软快速开发平台,助力企业搭乘万物互联的顺风车

Learun

4年Java经验,备战两月成功拿到美团、京东、字节offer

Java成神之路

Java 面试 算法 编程语言 面试程序员

程序员去外包真的不可取吗?

Java架构师迁哥

架构1期第四周作业1-大型互联网系统技术梳理

道长

极客大学架构师训练营

架构师作业第三周学习总结

Wee权

从构建小系统到架构分布式大系统,Spring Boot2的精髓全在这里了

Java架构之路

Java 程序员 面试 Spring Boot 编程语言

建筑行业区块链应用场景是怎样的

CECBC区块链专委会

区块链 行业资讯

架构师训练营第1期第四周作业二

道长

极客大学架构师训练营

用NOSql给高并发系统加速

架构师修行之路

nosql redis 分布式 微服务

数字货币交易所源码开发,交易所APP搭建

135深圳3055源中瑞8032

Spring Cloud 微服务实践(7) - 日志

xiaoboey

kafka 微服务 Spring Cloud 日志 spring cloud stream

做好分库分表其实很难之二

架构师修行之路

微服务 分库分表

架构师训练营第三周作业

Wee权

EffectiveJava读书笔记-01-对象创建与销毁

wander

读书笔记 编程开发

Nacos-技术专题-配置中心实现

李浩宇/Alex

区块链数字钱包技术开发,数字资产钱包

135深圳3055源中瑞8032

架构师训练营第四章 系统架构总结

郎哲158

开源=免费?

Learun

架构师训练营第四周作业

郎哲158

31道Java核心面试题,一次性打包送给你

小Q

Java 学习 程序员 架构 面试

区块链是一个不知道要解决什么问题的解决方案吗?

CECBC区块链专委会

比特币 区块链 银行

关于国际化语言 Intl

西贝

Java 前端 国际化 格式化

深入分析CRM系统对现代企业的作用

Learun

PyFlink + 区块链?揭秘行业领头企业 BTC.com 如何实现实时计算

Apache Flink

flink

区块链支付系统开发公司,USDT承兑支付

135深圳3055源中瑞8032

开源数据库这么香,为什么我们还要下功夫自研?

华为云开发者社区

数据库 开源 数据

大数据技术升级脉络及认知陷阱

大数据技术升级脉络及认知陷阱

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