使用Java进行机器学习和数据科学的可能性

发表时间: 2020-04-28 15:08

虽然 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