您好,登錄后才能下訂單哦!
這篇文章給大家介紹Spark中MLlib和ML庫的區別是什么,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
MLlib是Spark的機器學習(ML)庫。其目標是使實際的機器學習可擴展和容易。在高層次上,它提供了如下工具:
ML算法:通用學習算法,如分類,回歸,聚類和協同過濾
特征提取,特征提取,轉換,降維和選擇
管道:用于構建,評估和調整ML管道的工具
持久性:保存和加載算法,模型和管道
實用程序:線性代數,統計,數據處理等
MLlib基于RDD的API現在處于維護模式。
從Spark 2.0開始,包中的基于RDD的API spark.mllib
已進入維護模式。Spark的主要機器學習API現在是包中的基于DataFrame的API spark.ml
。
有什么影響?
MLlib將仍然支持基于RDD的API spark.mllib
并修復錯誤。
MLlib不會將新功能添加到基于RDD的API。
在Spark 2.x版本中,MLlib將向基于DataFrame的API添加功能,以便與基于RDD的API達成功能對等。
達到功能對等(大致估計為Spark 2.2)后,基于RDD的API將被棄用。
基于RDD的API預計將在Spark 3.0中被刪除。
為什么MLlib切換到基于DataFrame的API?
DataFrames提供比RDD更友好的API。DataFrame的許多優點包括Spark數據源,SQL / DataFrame查詢,Tungsten和Catalyst優化以及跨語言的統一API。
MLlib的基于DataFrame的API提供跨ML算法和跨多種語言的統一API。
數據框便于實際的ML管線,特別是功能轉換。
什么是“Spark ML”?
“Spark ML”不是一個正式的名字,偶爾用于指代基于MLlib DataFrame的API。這主要是由于org.apache.spark.ml
基于DataFrame的API所使用的Scala包名以及我們最初用來強調管道概念的“Spark ML Pipelines”術語。
MLlib是否被棄用?
編號MLlib包括基于RDD的API和基于DataFrame的API。基于RDD的API現在處于維護模式。
MLlib使用線性代數包Breeze,它依賴于 netlib-java進行優化的數值處理。如果本機庫在運行時不可用,您將看到一條警告消息,而將使用純JVM實現。
由于運行時專有二進制文件的授權問題,netlib-java
默認情況下,我們不包含本地代理。要配置netlib-java
/ Breeze以使用系統優化的二進制文件,請包括 com.github.fommil.netlib:all:1.1.2
(或者構建Spark -Pnetlib-lgpl
)作為項目的依賴項,并閱讀netlib-java文檔以獲取平臺的其他安裝說明。
要在Python中使用MLlib,您將需要NumPy 1.4或更高版本。
關于Spark中MLlib和ML庫的區別是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。