跳轉到主要內容
公司博客上

簡化機器學習與磚Apache火花

通過丹尼李

2015年6月4日 公司博客上

分享這篇文章

很多數據科學家和工程師可以證明,大部分時間都花在模型本身,而是支持基礎設施。關鍵問題包括容易想象的能力,分享,部署和安排工作。更令人不安的是數據工程師需要重新實現模型數據科學家開發的生產。磚,數據科學家和工程師可以簡化這些物流問題和花更多的時間關注他們的數據問題。

簡化可視化

數據科學家和工程師的一個重要觀點是能夠快速可視化數據和模型生成。例如,一個常見的問題在處理線性回歸是確定模型的擬合優度。而統計評估,如基本均方誤差,能夠查看數據散點圖與回歸模型也同樣重要。

訓練模型

使用一個數據集比較人口(x)和標簽數據的平均房價(y),我們可以使用火花MLlib構建一個線性回歸模型與隨機梯度下降法的線性回歸(LinearRegressionWithSGD)。火花MLlib是Apache火花的核心組成部分,允許數據科學家和工程師快速實驗,構建數據模型,並把它們生產。因為我們都在嚐試SGD,我們需要嚐試不同的迭代和學習速率(即α或步長)。

開始嚐試這些模型的一個簡單方法是創建一個磚筆記本在你選擇的語言(python, scala,火花SQL),並提供上下文信息通過減價文本。下麵的截圖是兩個細胞從一個例子DBC筆記本頂部細胞含有減記的評論而底部細胞包含pyspark代碼訓練兩個模型。

圖1一個

圖1:截圖的磚筆記本訓練兩個模型與SGD進行線性回歸

評估模型

一旦模型訓練,與一些額外的pyspark代碼,您可以快速計算這兩個模型的均方誤差:

valuesAndPreds = parsedData。地圖(λ(p。標簽,model.predict (p.features)))MSE = valuesAndPreds。(λ(p, v): (v - p) * *2).mean ()打印("均方誤差= "+str(MSE))

的定義模型和MSE結果在下表中。

#的迭代 步長 均方誤差
模型 One hundred. 0.01 1.25095190484
模型B 1500年 0.1 0.205298649734

雖然統計最有可能的評估表明,模型有更好的擬合優度,視覺檢查數據的能力,就能很容易地驗證這些結果。

可視化的模型

磚,有許多可視化選項,您可以使用與你的磚筆記本。除了默認可視化自動使用火花DataFrames時可用,您還可以使用matplotlib, ggplot, d3。js -所有嵌入相同的筆記本。

在我們的示例中,我們使用ggplot (python代碼下麵)所以我們不僅能提供原始數據的散點圖(藍色),而且圖線的兩個模型,模型是紅色的和模型B是綠色的。

p = ggplot (pydf aes (“x”,“y”)+geom_point(顏色=“藍”)+geom_line (pydf aes (“x”,“日元”),顏色=“紅色”)+geom_line (pydf aes (“x”,“y3”),顏色=“綠色”)顯示器(p)

嵌入在房價中位數相同的筆記本ggplot軸圖,散點圖是標準化的人口和軸是標準化的,房價中值;模型是紅色,而模型B是綠色的。

圖2一個

圖2:截圖的ggplot散點圖嵌入一個磚筆記本

從上麵的圖可以看出,綠線(模型B)相比有更好的擬合優度紅線(模型),而評估統計數據指向這個方向,能夠快速可視化數據和模型在相同的筆記本允許數據科學家花更多的時間了解和優化他們的模型。

簡化共享

數據科學的另一個關鍵方麵是所需的共同努力來解決數據問題。beplay娱乐ios許多開發人員、工程師、和數據科學家通常在不同的時區工作,時間表,和/或地點,重要的是要有一個環境,是為協作而設計的。

可移植性

使用磚,可以更容易與您的團隊合作。你可以分享你的磚筆記本通過分享其URL,這樣任何web瀏覽器在任何設備上都可以查看您的筆記本電腦。

IMG_1596

圖3:磚的筆記本視圖相同的線性回歸SGD模型通過matplotlib iPhone 6。

非專有

雖然這些筆記本是磚的優化,您可以導出這些筆記本python, scala和SQL文件,這樣您就可以在您自己的環境中使用它們。這種方法的常見用例數據科學家和工程師將合作和實驗數據磚,然後應用生成的代碼到本地環境。

股票的定義

數據科學家或工程師使用許多不同的數據集,跟上所有的變化模式和地點本身可以是一份全職工作。幫助控製這種磚包括集中的表定義。而不是尋找包含模式的包含文件,磚中的tables選項卡,您可以定義在一個地方你所有的表。這種方式作為數據工程師更新這些表的模式或源位置,這些改變是立即可用的所有筆記本電腦。

圖4

圖4:視圖的表定義(模式和樣本數據)從一個地方。

合作

筆記本被創建並共享,用戶可以評論代碼或數據,這樣他們就可以提供輸入筆記本沒有做任何修改。這樣你可以鎖定筆記本以防止意外更改,仍然接受反饋。

圖5

圖5:用戶評論磚筆記本更容易促進反饋

簡化的部署

磚的關鍵優勢之一是模型由數據科學家可以在生產運行。這是一個巨大的優勢,因為它可以減少開發周期,極大的簡化了維護。相比之下,今天的數據科學家開發模型使用單獨的機器工具如R或Python,然後對生產數據工程師重新實現模型。

簡化基礎設施

作為一個數據工程師,有很多步驟和配置在生產部署Apache火花。一些例子包括(但不限於):

  • 為你配置高可用性和災難恢複火花集群
  • 建立必要的體現,自旋向上和向下集群
  • 為快速檢索配置引發當地利用ssd
  • 或修補你的火花集群升級到最新版本的操作係統或Apache火花

磚,火花集群的管理由專門照顧磚由開發人員和工程師支持Apache火花開源項目的提交者。這些集群配置為最佳性能和平衡問題周圍的資源調度,緩存和垃圾收集。
部署完成後,您就可以快速查看可用的集群和當前狀態,包括庫和筆記本連接到集群(s)。擔憂高可用性、災難恢複、體現構建和部署集群、服務管理、配置、補丁和升級都是管理代表你用你自己的(或公司)AWS帳戶。

圖6

圖6:你的磚磚容易管理集群視圖的基礎設施

簡化作業調度

傳統上,從代碼開發過渡到生產是一項複雜的任務。它通常需要獨立的人員和流程來構建代碼並把它投入生產。但磚有一個強大的工作特性在生產中運行應用程序。你可以把筆記本您剛剛創建並運行它作為一個周期的工作——調度這分鍾,每小時、每天、每周或每月的間隔。它也有一個智能集群配置功能,允許您現有的集群上運行你的筆記本或一個隨需應變的集群。對你的工作你也可以接收電子郵件通知以及配置重試和超時。

圖7

圖7:視圖的人口與價格采用筆記本夜間工作

,你可以上傳並執行任何火花引發JAR編譯安裝的工作特性。因此可以使用任何以前的工作立即重建和重建很快上手。

嚐試磚

我們創建了磚方便數據科學家和工程師專注於實驗和訓練他們的模型,對這些模型快速部署和安排工作,容易合作和分享他們的經驗,很容易地共享模式和定義的數據集。讓我們管理集群、配置最優性能,進行升級和補丁,並確保高可用性和災難恢複。

機器學習與火花MLlib更有趣當你花大部分的時間在做機器學習!

免費試著磚
看到所有公司博客上的帖子
Baidu
map