您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關Spark2.2 機器學習庫MLlib的原理分析是怎樣的,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
MLlib是Spark的機器學習(ML)庫。機器學習具有可擴展性和易用性。提供高級API,它提供了以下工具:
ML算法:常見的學習算法,如分類、回歸、聚類和協同過濾
特征化:特征提取、變換、降維和選擇
管道:用于構建、評估和調優ML管道的工具
持久性:保存和加載算法、模型和管道
實用程序:線性代數,統計學,數據處理等。
基于MLlib RDD的API現在處于維護模式。
從Spark 2.0開始,在spark.mllib
程序包已進入維護模式。Spark的主要機器學習API現在是DataFrame-based API spark.ml
。
有什么影響 ?
MLlib將支持基于RDD的API spark.mllib
以及錯誤修復。
MLlib不會為基于RDD的API添加新功能 。
在Spark 2.x版本中,MLlib將為基于DataFrames的API添加功能,以實現與基于RDD的API的功能奇偶校驗。
在達到功能奇偶校驗(粗略估計Spark 2.3)之后,將棄用基于RDD的API。
The RDD-based API is expected to be removed in Spark 3.0.
預計將在Spark 3.0中刪除基于RDD的API。
為什么MLlib會切換到基于DataFrame的API?
DataFrames提供比RDD更加用戶友好的API。DataFrame的許多優勢包括Spark Datasources, SQL/DataFrame queries,Tungsten和Catalyst優化以及跨語言的統一API。
基于DataFrame的MLlib API跨ML算法和多種語言提供統一的API。
DataFrames有助于的ML Pipelines,特別是特征變換。有關詳細信息,請參閱Pipelines guide。
什么是“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現在處于維護模式。但是API和MLlib都沒有被棄用。
MLlib使用線性代數包Breeze,它依賴于 netlib-java進行優化的數值處理。如果本機庫1在運行時不可用,您將看到一條警告消息,而將改用純JVM實現。
由于運行時專有二進制文件的許可問題,我們netlib-java
默認情況下不包含本機代理。要配置netlib-java
/ Breeze以使用系統優化的二進制文件,請包含 com.github.fommil.netlib:all:1.1.2
(或構建Spark with -Pnetlib-lgpl
)作為項目的依賴項,并閱讀netlib-java文檔以獲取平臺的其他安裝說明。
要在Python中使用MLlib,您將需要額外的NumPy版本以及1.4或更高版本。
下面的列表重點介紹了Spark 2.2版本中添加到MLlib的一些新特性和增強功能:
所有用戶或項目的top-k推薦的ALS方法,與mllib(SPARK-19535)中的功能相匹配。ml和mllib (SPARK-11968 and SPARK-20587)的性能也有所提高
用DataFrames 統計 相關性 和 ChiSquareTest
(SPARK-19636 and SPARK-19635)
FPGrowth
頻繁模式挖掘算法 (SPARK-14503)
GLM
now supports the full Tweedie
family (SPARK-18929)
Imputer
用于填充數據集中缺失值的特征轉換器 (SPARK-13568)
LinearSVC
線性支持向量機分類 (SPARK-14709)
Logistic回歸現在支持在訓練期間對系數的約束 (SPARK-20047)
MLlib正在積極開發中。標記為Experimental/DeveloperApi的api在將來的版本中可能會發生變化,下面的遷移指南將解釋版本之間的所有變化。
沒有突破性的變化。
反對
沒有人反對。
Changes of behavior
SPARK-19787: Default value of regParam
changed from 1.0
to 0.1
for ALS.train
method (marked DeveloperApi
). Note this does not affect the ALS
Estimator or Model, nor MLlib’s ALS
class.
SPARK-14772: Fixed inconsistency between Python and Scala APIs for Param.copy
method.
SPARK-11569: StringIndexer
now handles NULL
values in the same way as unseen values. Previously an exception would always be thrown regardless of the setting of the handleInvalid
parameter.
上述就是小編為大家分享的Spark2.2 機器學習庫MLlib的原理分析是怎樣的了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。