Spark機器學(xué)習(xí)庫(MLlib)開發(fā)指南(1)

機器學(xué)習(xí)庫(MLlib)開發(fā)指南(1)

本文是翻譯自官方文檔,如有錯誤,歡迎指正。
原文 https://spark.apache.org/docs/latest/ml-guide.html

MLlib是spark的機器學(xué)習(xí)庫,它的目標是使得實戰(zhàn)機器學(xué)習(xí)變得易于擴展。在較高層次上,它提供了如下的工具

  • 機器學(xué)習(xí)算法:通常的學(xué)習(xí)型算法,例如分類 ,回歸,聚類以及協(xié)同過濾
  • 特征處理:特征提取,轉(zhuǎn)換,降維以及特征選擇
  • pipeline:用于構(gòu)建,評估及調(diào)整ML pipeline的工具
  • 持久化:保存及加載算法,模型及pipeline
  • 工具類:線性代數(shù),統(tǒng)計,數(shù)據(jù)綁定等等
聲明:DataFrame-based api是主要api
MLlib RDD-based API 現(xiàn)在處于維護狀態(tài)
在 Spark 2.0,在 spark.MLlib這個包下的 RDD-based APIs 已經(jīng)進入維護狀態(tài)?,F(xiàn)在主要的 api 是位于 spark.ml 這從此包下面的 DataFrame-based API

這個聲明的說明

  • MLlib將仍然支持位于 spark.MLlib 下面的 RDD-based API,并提供錯誤修復(fù)
  • MLlib將不再添加新的功能為RDD-based API
  • 在Spark 2.x版本中,MLlib 將添加功能到 DataFrames-based API ,為了達到RDD-based API相同的功能
  • 在達到相同的功能后(粗略估計到Spark 2.3),RDD-based API 將被廢棄
  • RDD-based API 預(yù)計在Spark 3.0時移除

為什么 MLlib要切換到DataFrame-based API

  • DataFrames 提供了比RDD更加用戶友好的API,DataFrames的許多好處包括Spark Datasources,SQL / DataFrame查詢,Tungsten和Catalyst優(yōu)化以及跨語言的統(tǒng)一API
  • 基于DataFrame的ML API為ML算法和跨多種語言提供了統(tǒng)一的API。
  • DataFrames有助于實際的ML Pipelines,特別是特征轉(zhuǎn)換。
    有關(guān)詳細信息,請參閱Pipelines指南

什么是Spark ML

  • Spark ML 不是一個官方的名稱,但偶爾用于引用基于MLlib DataFrame的API。這主要是由于基于DataFrame的API使用的org.apache.spark.ml Scala軟件包名稱以及我們最初用于強調(diào)管道概念的“Spark ML Pipelines”術(shù)語。

MLlib被棄用

  • 不,MLlib 包含 RDD-based API 和 DataFrame-based API。 RDD-based API 現(xiàn)在進入維護狀態(tài),但是MLlib是一個整體,API不會棄用。

依賴
MLlib使用線性代數(shù)包Breeze,它依賴數(shù)值處理優(yōu)化包netlib-java。如果在運行時本地庫不可用,你將看到一個警告消息,一個純JVM實現(xiàn)將作為替換使用。
由于運行時專有二進制文件的許可問題,我們默認不包括netlib-java的代理。
要將netlib-java / Breeze配置為使用系統(tǒng)優(yōu)化的二進制文件,請將com.github.fommil.netlib:all:1.1.2(或構(gòu)建Spark with -Pnetlib-lgpl)作為項目的依賴項,并讀取netlib-java文檔
為您的平臺的額外的安裝說明。

要在Python中使用MLlib,您將需要NumPy 1.4或更高版本。

2.2版本中的亮點
下面的列表突出顯示了在2.2版本的Spark中添加到MLlib的一些新功能和增強功能:

  • 對用戶或者物品進行topk推薦的ALS方法,與MLlib(SPARK-19535)中的功能相匹配。
    ml和MLlib(SPARK-11968和SPARK-20587)的性能也得到改善
  • Correlation and ChiSquareTest為DataFrames增加統(tǒng)計函數(shù)
  • FPGrowth 算法 或者 frequent pattern mining (SPARK-14503)
  • GLM現(xiàn)在支持完整的Tweedie系列(SPARK-18929)
  • 在dataset中估計缺失值 通過特征變換
  • LinearSVC 實現(xiàn) svm(SPARK-14709)
  • 邏輯回歸現(xiàn)在支持訓(xùn)練過程中系數(shù)的約束

遷移指導(dǎo)
MLlib正在積極發(fā)展。標記為Experimental / DeveloperApi的API可能會在將來的版本中更改,下面的遷移指南將解釋發(fā)行版之間的所有更改。

行為變化

  • SPARK-19787:對于ALS.train方法(標記為DeveloperApi),regParam的默認值從1.0變?yōu)?.1。請注意,這不影響ALS估算器或模型,也不影響MLlib的ALS類。
  • SPARK-14772:修復(fù)了Param.copy方法的Python和Scala API之間的不一致。
  • SPARK-11569:StringIndexer現(xiàn)在處理NULL值的方式與未看到的值相同。以前,無論handleInvalid參數(shù)的設(shè)置如何,都會拋出異常。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容