雲栖号資訊:【 點選檢視更多行業資訊】
在這裡您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來!
雖然 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://yqh.aliyun.com/zhibo立即加入社群,與專家面對面,及時了解課程最新動态!
【雲栖号線上課堂 社群】
https://c.tb.cn/F3.Z8gvnK
原文釋出時間:2020-04-28
本文作者:Malcom Ridgers
本文來自:“
InfoQ”,了解相關資訊可以關注“
”