大數據spark中ml與mllib的區(qū)別你分清了嗎?-創(chuàng)新互聯(lián)

大數據學習過程中一個重要的環(huán)節(jié)就是spark,但是在spark中有很多的知識點,很多人都傻傻分不清楚,其中,最易搞混的就是ml與mllib的區(qū)別,所以我們不妨來詳細的了解一下二者的區(qū)別。

如果你想了解大數據的學習路線,想學習大數據知識以及需要免費的學習資料可以加群:784789432.歡迎你的加入。每天下午三點開直播分享基礎知識,晚上20:00都會開直播給大家分享大數據項目實戰(zhàn)。
首先、關于Spark ML

成都創(chuàng)新互聯(lián)2013年開創(chuàng)至今,是專業(yè)互聯(lián)網技術服務公司,擁有項目網站建設、成都網站制作網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元盤龍做網站,已為上家服務,為盤龍各地企業(yè)和個人服務,聯(lián)系電話:028-86922220
1、定義:ark機器學習,對的對象:DataFrame。

   2、主要操作的是DataFrame。其中taFrame是Dataset的子集,也就是Dataset[Row]。DataSet是對RDD的封裝,對SQL之類的操作做了很多優(yōu)化。

   其次、關于Spark MlLib
   1、定義MLlib是Spark的機器學習(ML)庫。其目標是使實用的機器學習具有可擴展性和容易性。在高水平上,它提供了以下工具:

   A、ML算法:常用的學習算法,如分類,回歸,聚類和協(xié)同過濾

   B、特征:特征提取,變換,維數降低和選擇

   C、管道:構建,評估和調整ML管道的工具

   D、持久性:保存和加載算法,模型和流水線

   E、實用程序:線性代數,統(tǒng)計,數據處理等

   2、針對的對象:RDD

   從Spark 2.0開始,軟件包中基于RDD的API spark.mllib已進入維護模式。只修改bug,不增加系新的功能。Spark的主要機器學習API現(xiàn)在是包中的基于DataFrame的API spark.ml。

   最后,二者的區(qū)別總結

   1、編程過程

   (1)構建機器學習算法的過程不一樣:ML提倡使用pipelines,把數據想成水,水從管道的一段流入,從另一端流出。

   (2)大體概念:DataFrame => Pipeline => A newDataFrame

   Pipeline: 是由若干個Transformers和Estimators連起來的數據處理過程

   Transformer:入:DataFrame => 出: Data Frame

   Estimator:入:DataFrame => 出:Transformer

   2、算法接口

   (1)spark.mllib中的算法接口是基于RDDs的;

   (2)spark.ml中的算法接口是基于DataFrames的。

   實際使用中推薦ml,建立在DataFrames基礎上的ml中一系列算法更適合創(chuàng)建包含從數據清洗到特征工程再到模型訓練等一系列工作的MLpipeline;

   比如用樸素貝葉斯舉個例子:

在模型訓練的時候是使用naiveBayes.fit(dataset: Dataset[]):NaiveBayesModel來訓練模型的,返回值是一個naiveBayesModel,可以使用naiveBayesModel.transform(dataset: Dataset[]): DataFrame,進行模型的檢驗,然后再通過其他的方法來評估這個模型, 模型的使用可以參考上面方法,是使用transform來進行預測的,取預測值可以使用select來取值,使用select的時候可以使用“$”label””的形式來取值。類似與sql ,使用起來通俗易懂,且入門的門檻較低。

   3、抽象程度

   (1)mlib主要是基于RDD的,抽象級別不夠高;

   (2)ml主要是把數據處理的流水線抽象出來,算法相當于流水線的一個組件,可以被其他算法隨意的替換,這樣就讓算法和數據處理的其他流程分割開來,實現(xiàn)低耦合。

   4、技術角度上:面向的數據集類型不一樣

   (1)ML的API是面向Dataset的

   (2)mllib是面對RDD的。Dataset和RDD有啥不一樣呢?

   Dataset的底端是RDD。

   Dataset對RDD進行了更深一層的優(yōu)化,比如說有sql語言類似的黑魔法,Dataset支持靜態(tài)類型分析所以在compile time就能報錯,各種combinators(map,foreach等)性能會更好。

   在spark3.0之后,將會廢棄mllib,全面的基于ml。因為ml操作的對象是DataFrame,操作起來會比RDD方便很多。所以,建議新接觸spark的同學可以直接用ml 的方式。

   大數據中的知識點需要大家詳細的去理解和應用,處理數據一旦出錯那么影響的將是整個大局,所以,求學者在學習過程中一定要打好基礎,從而更好的掌握大數據的知識。

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

文章題目:大數據spark中ml與mllib的區(qū)別你分清了嗎?-創(chuàng)新互聯(lián)
轉載來于:http://bm7419.com/article34/hcsse.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供外貿網站建設、定制開發(fā)、營銷型網站建設、網站策劃、企業(yè)建站靜態(tài)網站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網站建設