写点什么

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

发布了 567 篇内容, 共 193.1 次阅读, 收获喜欢 1124 次。

关注

评论 1 条评论

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

【小白学YOLO】YOLOv3网络结构细致解析

华为云开发者社区

人工智能 网络 物体检测 华为云 网络层

第7周-作业1

seng man

程序设计理念-CentOs7实践Nginx-带来安装服务的通用法则

图南日晟

Nginx PHP-FPM 架构设计 环境安装

为啥Underlay才是容器网络的最佳落地选择

博云技术社区

云计算 容器 容器网络

进击的 Flink:网易云音乐实时数仓建设实践

Apache Flink

flink

技术​选型的艺术

YourBatman

技术选型 湖北

前浪出新招,996已过时,互联网员工都开始住公司了!(爆公司信息)

程序员生活志

加班 996 007 互联网公司

web 性能压测工具

Z冰红茶

Kubernetes的拐点助推器:左手开源,右手边缘计算

华为云开发者社区

Kubernetes 容器 边缘计算 容器技术 华为云

关于数据库索引的知识点,你所需要了解的都在这儿了

鄙人薛某

MySQL 索引结构 索引 MySQL优化

漫画:如何证明sleep不释放锁,而wait释放锁?

王磊

Java Wait Sleep

BIGO海量小文件存储实践

InfoQ_3597a20b53cc

【数据结构】Java 常用集合类 ConcurrentHashMap(JDK 1.8)

Alex🐒

Java 源码 数据结构 并发编程

架构训练营第七周作业

张锐

http请求压测工具

潜默闻雨

计算机网络基础(八)---网络层-路由概述

书旅

计算机网络 网络协议 计算机基础 AS

web压力性能测试

周冬辉

压力测试

架构感悟 7- 性能优化何为

旭东(Frank)

百度人脸算法“飞速迭代”,多模态活体检测V3.1获银行卡检测中心增强级认证

百度大脑

人工智能 人脸识别 百度大脑

挑战10的1,143,913次方种算法组合:这都不是事儿!

华为云开发者社区

华为 算法 进化 华为云

BIGO | Likee深度推荐模型的特征工程优化

InfoQ_3597a20b53cc

人工智能

第7周总结:性能

慵秋

原生Ingress灰度发布能力不够?我们是这么干的

博云技术社区

云计算 容器 云原生 PaaS

API网关——Kong实践分享

博云技术社区

云计算 容器 PaaS API

创业使人成长系列 (4)- 常用账号申请

石云升

支付宝 微信商户 商标

英特尔唐炯:竞争推动PC行业良性发展,促使英特尔前行

飞天鱼2017

数据湖应用解析:Spark on Elasticsearch一致性问题

华为云开发者社区

大数据 spark elasticsearch 数据湖 华为云

为什么我们要自主开发一个稳定可靠的容器网络

博云技术社区

云计算 PaaS fabric 容器云

百度大脑OCR技术助力钢铁物流实现智能管理

百度大脑

人工智能 百度大脑 文字识别

秒懂云通信:选云通信到底哪家强?

巨侠说

云通信 通信云

PV与UV你的网站也可以

北漂码农有话说

NLP领域的2020年大事记及2021展望

NLP领域的2020年大事记及2021展望

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