1. 程式人生 > >AWS 神器為資料科學家輕鬆打造機器學習全流程 –– EMR Spark + SageMaker 黃金搭檔

AWS 神器為資料科學家輕鬆打造機器學習全流程 –– EMR Spark + SageMaker 黃金搭檔

工欲善其事,必先利其器。在機器學習的世界裡,要想成為一名出色的資料科學家,必須要善於使用機器學習的工具。

資料科學家經常使用 Apache Spark 來做資料的預處理,Apache Spark 提供的 MLlib 庫不但包含很多常用的機器學習演算法(如 K-Means,分類,迴歸等)及資料特徵抽取,特徵轉換的預處理方法(如 Word2Vec,Tokenizer,Normalizer,PCA 等),而且還能借助 Spark 叢集的多工作節點平行計算的能力,對資料進行快速預處理。資料科學家還喜歡使用 IPython,Jupyter Notebook 等互動式工具來檢查,分析機器學習任務的各個階段。當然還需要使用來搭建模型訓練和部署的機器叢集。

這些不同的機器學習工具或框架有著各自的安裝配置方法,串聯整合起來到整個機器學習流程中更是複雜,資料科學家們往往要耗費大量精力用於整個流程的搭建上。那有沒有高效的工具來幫助資料科學家事半功倍完成機器學習的任務呢?那是當然的! AWS 的明星服務 EMR 和 SageMaker 就是把廣大資料科學家從枯燥重複性勞動中解救出來的神器。利用兩個服務組合不但能快速預處理資料,一鍵訓練和部署模型,同時還提供 Jupyter Notebook 給資料科學家互動式環境,以方便檢跟蹤查機器學習每個階段。

今天我們就來講述一下如何利用 AWS 的 EMR Spark + SageMaker 服務快速打造一套識別 MNIST 手寫數字圖片的機器學習流程。MNIST 是一個手寫數字資料庫,它有 60000 個訓練樣本集和 10000個測試樣本集,我們把這個 MNIST 儲存到 AWS 的 S3 上,利用 EMR Spark 的 PCA 演算法對訓練樣本(28*28圖片)進行特徵抽取,然後再借助 SageMaker 自帶的 K-Means 演算法進行模型訓練並自動部署模型。

Amazon EMR 和 SageMaker 是什麼?

Amazon EMR服務是一個託管的 Hadoop 服務,現支援最新的 Apache Spark 2.3.0,能夠幾分鐘內快速搭建起來一個 Spark 叢集,同時 EMR 還能支援 Spot 例項能夠大大節約資料預處理的成本。

Amazon SageMaker 是一個託管的模型訓練和部署服務,不僅能夠快速搭建構建起機器叢集進行模型訓練,並且能自動部署訓練好的模型。SageMaker 不但內建了 10 餘種常用的機器學習演算法(如 K-Means,分類,迴歸),還支援 MXNet 和 TensorFlow 深度學習框。

Amazon SageMaker 提供了一個 SageMaker Spark 庫(Scala&Python),能把機器學習 pipeline 中的 Spark 資料預處理階段和 SageMaker 模型訓練和部署階段自動連線起來。

Amazon SageMaker 還提供了預安裝 Anaconda 環境的 Jupyter Notebook 例項,能夠方便資料科學家進行互動式處理機器學習任務。在今天的例子中,我們將使用 Jupyter Notebook 來對接 EMR Saprk 叢集,在 Notebook 中給 EMR Spark 傳送指令,互動式地觀察對 MNIST 資料集進行機器學習的過程。

前提條件

  • Spark 叢集和 SageMaker Jupyter 例項需要在同一個 VPC 內
  • Spark 的 master 節點的安全組需要對SageMaker Jupyter 例項開放 8998 埠。

具體步驟

首先建立 EMR Spark 叢集(請使用高階模式),選擇 Hadoop, Livy(Spark 和 Jupyter Notebook 通訊元件), Spark 元件。從 EMR 5.11 版本後,Spark 節點上已經預安裝好 SageMaker 的 Spark 庫。

配置 EMR 節點的型別和數量,可以選擇 spot 例項型別幫助節約成本。在這裡我配置了一個 master節點,兩個 core 節點,都是 M4.large 機型。

建立好了 Spark 集群后,記下 Spark master 節點的 ip 地址,後面在 Sagemaker notebook instance 中需要配置。

修改 EMR Spark master EC2 節點安全組,新增 Livy 埠,source 選擇 Jupyter Notebook 所在的安全組。

因為需要在 EMR 的 master 節點中呼叫 SageMaker 服務,所以還需要對 EMR 中的 EC2 Role 賦予 SageMakerFullAccess 的許可權。

在 SageMaker 中建立 Notebook Instance:

在 notebook 控制檯中選擇 new -> Terminal:

開啟終端後執行以下命令:

cd .sparkmagic
wget https://raw.githubusercontent.com/jupyter-incubator/sparkmagic/master/sparkmagic/example_config.json
mv example_config.json config.json

修改 config.json 檔案,把之前記下的 spark master 節點 ip 地址填上

退出後新建一個 Sparkmagic (PySpark)並重啟 kernel:

輸入 %%info 如有下面的輸出,表示 Jupyter Notebook 已經 Spark 叢集能夠通訊了。

接下來我們要利用Notebook來串聯Spark 和SageMaker進行MNITS識別模型訓練。匯入必要的 python 庫:

  1. Pyspark.ml 中的 PCA 演算法,這個演算法在 Spark 叢集中會對 MNIST 手寫圖片做降維的預處理。

Sagemaker_spark 的 KMeansSageMakerEstimator 將會讓 Spark 節點呼叫 SageMaker 服務並使用自帶的 KMeans 演算法進行模型訓練和部署

Pyspark.ml 的 Pipeline 用於將 PCA 和 K-Means 兩個階段串聯起來

2. 把預先儲存在 S3 上的 MNIST 資料集匯入到 Spark 中,Spark 將會自動把 S3 上的資料集轉換成之後用於訓練的 DataFrame 格式的資料。通過 .show() 方法我們可以檢視匯入的訓練資料集,每個資料項擁有一個標籤,和 784 個特徵向量。

3. 分別定義兩個階段的演算法 PCA 和 K-Means

設定 cluster = 10,代表 10 個數字。

我們用 PCA 把原來的 28*28 畫素 784 個特徵降維到 50 個特徵;

定義 K-Means 演算法時我們配置在 SageMaker 中用於訓練和模型的機器型別和數量,這裡我們使用 1臺 m4.xlarge 機器用於 K-Means 演算法訓練,1 臺 m4.xlarge 機器用於模型的部署。

4. 構造 ML pipeline 並對 60000 個訓練資料進行模型訓練。

5. 使用 K-Means 演算法訓練將由 Spark master 節點呼叫 SageMaker 服務實現,所以我們能在 SageMaker 控制檯看到一個訓練任務。

6. 訓練完成後能夠在 SageMaker 控制檯檢視訓練好的模型和部署好的終端節點

7. 接下來可以在 Jypyter Notebook 中用測試集來測試模型

8. 同時我們也可以檢視 EMR 的控制檯,觀察在 Jupyter Notebook 中提交到 Spark 上執行的各種任務

9. 最後結束機器學習任務後,我們執行以下指令碼,刪除模型預測的 endpoint 節點。

以上就是利用 EMR Spark 和 SageMaker 快速搭建機器學習流程的步驟,我們後續可以擴充套件做更多的實驗,例如在 SageMaker 中使用自己的演算法,對接本地的 Spark 叢集等等。

相關推薦

AWS 神器資料科學家輕鬆打造機器學習流程 –– EMR Spark + SageMaker 黃金搭檔

工欲善其事,必先利其器。在機器學習的世界裡,要想成為一名出色的資料科學家,必須要善於使用機器學習的工具。 資料科學家經常使用 Apache Spark 來做資料的預處理,Apache Spark 提供的 MLlib 庫不但包含很多常用的機器學習演算法(如 K-Means,分類

Python機器學習流程專案實戰精講(2018版)

Python機器學習全流程專案實戰精講(2018版)網盤地址:https://pan.baidu.com/s/16SSVq74YC07M0dW1iDekPg 提取碼: vu7r備用地址(騰訊微雲):https://share.weiyun.com/5VGzPK0 密碼:yp4ri9 課程特色:機器學習一線工

Python機器學習流程項目實戰精講(2018版)

進階 需求分析 課程 baidu 流程 tps 經歷 有趣的 數據分析 Python機器學習全流程項目實戰精講(2018版)網盤地址:https://pan.baidu.com/s/16SSVq74YC07M0dW1iDekPg 提取碼: vu7r備用地址(騰訊微雲):ht

第一章 什麽我們對機器學習感興趣?(六)

銷售 學習 智能算法 實體 對象 計算 互聯 行為模式 生活 註:本書屬作者免費翻譯,如有版權問題,請聯系我刪除。如有轉載,請註明出處。 六、所有這些數據:數據地震 所有電腦化機器和服務所產生的數據曾經都是數字化技術的副產品,計算機科學家已經對數據庫進行了大量研究以

使用ML.NET + Azure DevOps + Azure Container Instances打造機器學習生產化

介紹 Azure DevOps,以前稱為Visual Studio Team Services(VSTS),可幫助個人和組織更快地規劃,協作和釋出產品。其中一項值得注意的服務是Azure Pipelines,它可以幫助開發人員構建持續整合(CI)和持續交付(CD)管道,從而自動化和標準化軟體開發過程的構建,

未明學院活動:機器學習熱門專案開始報名,一次收穫資料探勘&機器學習技能、行業專案經歷!

隨著大資料時代的到來,金融、通訊、網際網路等越來越多的行業需要資料科學方面的人才。在數聯尋英2016年釋出的《大資料人才報告》中表明,現階段我國大資料人才僅有 46 萬,在未來 3-5 年內大資料人才缺口將高達 150 萬。 缺口的逐漸增大,大資料人才的薪資也跟著水漲船高。據某權威招聘

資料探勘-實用機器學習技術》下載

2018年11月01日 21:13:05 qq_43580805 閱讀數:4 標籤: 程式設計 資料

Python資料預處理:機器學習、人工智慧通用技術(1)

Python資料預處理:機器學習、人工智慧通用技術 白寧超  2018年12月24日17:28:26  摘要:大資料技術與我們日常生活越來越緊密,要做大資料,首要解決資料問題。原始資料存在大量不完整、不一致、有異常的資料,嚴重影響到資料建模的執行效率,甚至可能導致模型

Python資料探勘與機器學習_通訊信用風險評估實戰(4)——模型訓練與調優

系列目錄: 訓練資料拆分 把訓練資料拆分為訓練集和交叉驗證集,比例為7:3。x_train和y_train用來訓練模型,x_test和y_test用來交叉驗證。 data_train = data_train.set_index('Us

帶你入門Python資料探勘與機器學習(附程式碼、例項)

作者:韋瑋來源:Python愛好者社群本文共7800字,建議閱讀10+分鐘。本文結合程式碼例項待

Python資料探勘與機器學習技術入門實戰

課程主講簡介: 韋瑋,企業家,資深IT領域專家/講師/作家,暢銷書《精通Python網路爬蟲》作者,阿里雲社群技術專家。 以下內容根據主講嘉賓視訊分享以及PPT整理而成。 本次課程包含了五個知識點: 1.資料探勘與機器學習技術簡介   2.Python資料預

機器學習_3】常見術語區別(人工智慧&資料探勘&機器學習&統計模型等)

1.人工智慧&資料探勘&機器學習&深度學習&統計模型 人工智慧:是一個大的概念,是讓機器像人一樣思考甚至超越人類。 資料探勘:有目的地從現有大資料中提取資料的模式(pattern)和模型(model)。——比較偏向探索性分析,不是強烈的目的導向,只是能發現多少發現多少。 資料

資料探勘與機器學習基本演算法總結

在這種學習模式下,輸入資料作為對模型的反饋,不像監督模型那樣,輸入資料僅僅是作為一個檢查模型對錯的方式,在強化學習下,輸入資料直接反饋到模型,模型必須對此立刻作出調整。常見的應用場景包括動態系統以及機器人控制等。常見演算法包括Q-Learning以及時間差學習(Temporal difference le

人工智慧、大資料、雲端計算、資料探勘與機器學習概述

一、人工智慧、大資料、雲端計算:https://blog.csdn.net/zw0pi8g5c1x/article/details/80027593 二、資料探勘與機器學習:https://blog.csdn.net/xiaogss/article/details/79316063 資料探勘

Python資料探勘與機器學習_通訊信用風險評估實戰(2)——資料預處理

系列目錄: 資料說明 通過對讀取資料的實踐,下面是資料集檔案對應讀取後的DataFrame說明。 資料檔案 DataFrame DataTech_Credit_Train_Communication1.txt train

資料探勘(機器學習)面試--SVM面試常考問題

應聘資料探勘工程師或機器學習工程師,面試官經常會考量面試者對SVM的理解。 以下是我自己在準備面試過程中,基於個人理解,總結的一些SVM面試常考問題(想到會再更新),如有錯漏,請批評指正。(大神請忽視) 轉載請註明出處:blog.csdn.net/szlcw1 SVM的原

走在前往架構師的路上(專注於分散式計算,大資料資料探勘,機器學習演算法等領域的研究)

新書<<深度剖析Hadoop HDFS>>釋出上市,此書源自於筆者部落格,重新經過整理,完善而成,此書的定位並不是一本純原始碼分析的書籍,其中有許多筆者在工作和學習中對於HDFS的一些有趣的看法和理解。 連結: 淘寶京東 (adsbygoog

資料探勘和機器學習中距離和相似度公式

距離:閔可夫斯基距離公式,也叫 Lp 範數: 當p=1時,變為曼哈頓距離公式,也即 L1範數: 當p=2時,變為歐式距離公式,也即 L2範數: 衡量空間中點的絕對距離,對絕對數值敏感。 相似性: 餘弦相似: 皮爾遜相關係數,即相關分析中的相關係數,對兩個個體的向

18名校資料探勘及機器學習課程資源彙總

轉自:http://suanfazu.com/discussion/27/18%E5%90%8D%E6%A0%A1%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98%E5%8F%8A%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A