【Azure】 使用 Azure Machine Learning Studio 體驗機器學習!


Azure 所提供的機器學習是架構在雲端之上的預測性服務,讓使用者可以不用購買昂貴的硬體以及自行建設基礎配置,同時也可以讓使用者快速地建立預測模型。
 
接下來的幾篇文章,是 MSP 們接受微軟傳教士 Ching Chen 的委託所翻譯的技術文章,透過這幾篇文章會使用 Microsoft Azure Machine Learning Studio,從如何存取資料開始,一路帶著大家建立並使用預測模型,最後則是展示如何使用 R 語言以及 Python 所撰寫的腳本。

想要了解更多,請看:
第二篇:【Azure】開發和使用 AzureML 模型

第三篇:【Azure】在 AML 上執行自定的 Scripts

1. 總覽

在本實驗中,我們將從之前實驗產生的各式來源,使用 Azure Machine Learning(AML)輸入模組讀取資料集。我們將探索連接不同資料源的方法,擷取資料,獲得基礎統計和資料視覺化技術。了解這些技術後,對於下一階段開發ML解決方案將更得心應手。
 

1.1 目標

本實驗針對不同資料 1.來源的存取、2.資料擷取和 3.擷取的資料中內含的統計資訊來說明操作方法。
 

1.2 需求

必須完成先前的實驗部分,擁有準備存取的資料集。
 

2. 建立 Azure Machine Learning 實驗

在本階段我們將建立第一個AML實驗並帶大家習慣 AML Studio 的操作環境。

  1. 進入 https://studio.azureml.net 入口
  2.  

  3. 一旦成功登入後,點選“+ NEW”建立一個空白的實驗
  4. 21
     

  5. 點擊左方的EXPERIMENT 按鈕,然後選擇“Blank Experiment”
  6. 22
     

  7. 在新視窗的左方,你能看到用來開發 AML 實驗的模組。這些模組被分類在像是“Data Input and Output”或“Machine Learning”等標題的底下。由於模組數量太多,有時可能很難找到其中一個,在這種情況下,只要在左上方搜尋欄輸入少許模組名稱的關鍵字就能快速找到。開發一個實驗,需拖放模組到實驗畫布,互相連接,並設置每個模組的屬性(選擇模組並在視窗右方設置屬性),即能儲存並執行實驗。
  8. 24
     

  9. 拖放兩個模組到畫布上。第一個模組為 Data Input and Output 類別中的“Import Data”,第二個模組為 R Language Modules 類別中的“Execute R Script”。
  10. 25
     

  11. 可以看到每個模組有至少一個輸入或輸出端或是兩個都有。輸出端在模組的下方,輸入端在模組的上方。也就是說, Import Data 只有一個輸出端。
  12. 26
     
    “Execute R Script”模組有3輸入2輸出,各有特定的用途。
    261
     

  13. 像是 Import Data 模組中的驚嘆號標示,在各個模組中能看到符號在右邊(紅色驚嘆號或綠色勾勾)。這意味著模組有問題或它是完好的。如果沒有標示,表示你還未執行,不會有模組狀態的線索。
  14. 27
     

  15. 點擊 Import Data 選取模組。其他模組也一樣,當被選取,模組的外框會顯示得較為顯眼,屬性視窗也會更新為被選取模組的資訊。
  16. 28
     

  17. 只要查看被選擇模組的屬性視窗中的 Quick Help 部分。點選“more help…”連結,會進入一個瀏覽器視窗,視窗中將顯示被選擇模組更詳盡的描述,即可獲得更快速且詳細的支援。
  18. 29
     

  19. 在 AML Studio 視窗底部也有進度通知。假如背景有工作在執行或有通知,會被顯示在這個區域。

 

3. 存取資料

在本實驗中,我們不靠任何函式開發簡易的 Azure ML 實驗,藉由不同來源輸入資料像是 Azure SQL Database, Azure Storage, Manual Input, URL Reader 等。接著我們將使用這些資料集開發來 ML。
 

3.1 存取資料,使用存在的資料集

  1. 點擊 DATASETS 並切換到 SAMPLES 。這裡你能找到預先安裝好可以讓你使用的樣本。這個步驟只是告知樣本資料集列表的位置。
  2. 311
     

  3. 點選頁面左下角“+ NEW”,開始創建一個空白的實驗。
  4. 312
     

  5. 點擊左方的 EXPERIMENT ,然後選擇“Blank Experiment”。
  6. 313
     

  7. 在左邊視窗中,依序展開“Saved Datasets”和“Samples”。在“Samples”下,將會看到同步驟 1 預先安裝的資料集列表。
  8. 314
     

  9. 在 Samples 底下找到“Automobile price data (Raw)”資料集模組,拖拉到實驗畫布中。
  10. 315
     
    點選模組能在右方視窗看到被選擇模組的屬性。以這個樣本模組而言,只有唯讀的屬性像是大小、格式和一個可下載連結(“view dataset”)。
     

  11. 除了屬性視窗外,可以藉由輸出端與模組互動。有些模組互動前需要實驗被執行。點擊模組的輸出端,會出現選單。選擇選單中的“Visualize” 指令。
  12. 316
     

  13. “Visualize”指令會進入一個新的視窗,內含資料審查,和一些被選擇行的統計/視覺化資料。
  14. 317
     

  15. 展開右方的統計和視覺化資訊。選擇資料審查區“make”這行,能找到該行最小、最大值,獨特的值等等。你也可以在視覺化區塊底下以長條統計圖分析資料的分布。
  16. 3180
     
    318
     

  17. 在以上例子中,因為被選擇的行由字母與數字組成,所以統計值是 NaN 。如果你選擇的行只有數字組成,就會即時的被更新。
    從長條圖中,可以發現資料集中 Toyota 車比 Dodge 車數量還多或是“make” 的分佈不均等。(Toyota比其他多很多,Nissan比Volvo多一點)

 

3.2 上傳自己的資料集

在先前的範例中,我們使用預先安裝好的樣本資料集。本實驗中將輸入儲存在本機我們自己的資料集(在上回實驗中所提)。

  1. 要上傳儲存在本機的資料集,點擊 AML Studio 頁面左下角的 “+ NEW”。
  2. 321
     

  3. 點擊選單上的“Dataset”,然後選擇“From Local File”
  4. 322
     

  5. 點擊“選擇檔案”後找到之前實驗產生的 linoise.csv 檔案。如果想更改默認的檔案名稱就輸入新的,選擇檔案形式(在本案例中是 CSV 檔,默認的選項),最後點擊右下角的打勾標示開始上傳檔案。
  6. 323
     

  7. 檔案上傳成功後,建立一個空白的 ML 實驗,然後依序展開 “Saved Datasets”和“My Datasets”。你會在“My Datasets”發現上傳的檔案,拖放到實驗畫布中。
  8. 324
     

  9. 點擊“linoise.csv”資料集模組的輸出端然後選擇“Visualize”。按照順序,選擇資料集的“X”行,接著在視覺化區塊底下選擇“ywnoise”跟x行的值做比較。將會看到跟在 Excel, Python, R 實驗相同的圖。
    如果你看下方的圖,可發現 x 行的統計表示最小值是 1 ,最大值是30 ,平均值、中位數是 15.5 ,特徵類型是“數值特徵”。一般人可能認為可以知道這些資訊是因為資料量少,如果資料集較大,會想藉由單一各點來得到全部的資訊。也許你會想知道是否一行當中的每一列都包含數值,或在百萬資料中是否某一列有資料遺失。
    在視覺化區域之下,你將看到 x 跟 ywnoise 繪製成的圖。這張圖會帶給你的第一手消息,是“x” 跟 “ywnoise”這兩個特徵是強烈相依的,這將在之後的階段做更詳細的說明。
  10. 3251
     
    3252

 

3.3 更新自己壓縮的資料集

  1. 先前部份我們上傳 CSV 檔案到 Azure ML 工作環境。假設 CSV 檔案非常大,我們也可以利用壓縮工具將他壓縮成原本檔案大小的 1/10 。Azure ML 也可以處理壓縮的 ZIP 檔案。將“linoise.csv”壓縮成 “linoise.zip”,並將壓縮後的版本上傳到 Azure ML 工作環境。
  2.  

  3. 首先將壓縮檔案模組“linoise.zip” 拖放到實驗畫布。接著在模組工具中拖放“Data Input and Output”下的“Unpack Zipped Datasets”模組。最後將他們互相連在一起。
  4. 332
     

  5. 選擇“Unpack Zipped Datasets”模組。到屬性視窗做適當的設定,如下圖。
  6. 333
     

  7. “Run”實驗並點擊“Unpack Zipped Datasets”模組輸出端查看值。

 

3.4 手動輸入資料

當資料量很少的時候,你可能會希望直接「手動輸入」資料到 AML 環境。本階段將介紹這在 AML Studio 中的特色。

  1. 在 AML Studio 中建立空白的實驗。拖放模組工具箱中“Data Input and Output”下的 “Enter Data Manually”模組到實驗畫布。設定“Enter Data Manually”模組的屬性, DataFormat 是“CSV”,並將“HasHeader”選項打勾。
  2. 341
     

  3. 開啟之前樣本資料集的 excel 檔案,複製D, E, F行的 31 列,如下圖。
  4. 342
     

  5. 回到 AML Studio ,確認“Enter Data Manually”被選取。在屬性視窗中,“Data”文字格的空白處點右鍵,貼上剛從 excel 複製的資料。
    (若無貼上選項,使用 ctrl + v 貼上)
  6. 343
     

  7. 確認貼上資料中沒有空白的第 32 列。
  8. 344
     

  9. 點選“Enter Data Manually”模組的輸出端。在彈出的選單中將會看到“Visualize” 是無法點選的。我們之前提到,一些元件會在執行後才準備完成。
  10. 345
     

  11. 執行實驗。
  12. 346
     

  13. 經過幾秒後就能看到實驗名稱旁邊顯示“Finished Running”,在成功執行後也就會看到綠色勾勾出現在“Enter Data Manually” 模組右邊。最後當你再次點擊模組輸出端,將看到允許選取的 “Visualize”指令。
  14. 347

 

3.5 存取資料到 Azure Storage

在這個部分,我們將探究資料儲存到雲端 — Azure Storage service 的可能。

  1. 在 AML Studio 建立一個空白實驗。將模組工具中 “Data Input and Output” 下的”Import Data”模組拖放到實驗畫布中。
  2. 351
     

  3. 設置”Import Data”模組的屬性。 在“Data source”下拉式選單中選擇“Azure Blob Storage” ,即默認值。在 “Authentication type” 底下選擇 “Storage Account”因為在之前實驗中我們還未設置容器公開,所以我們必須提供存取金鑰。在 “Account Name”和“Account Key” 屬性下,輸入我們先前”Azure Storage”實驗中對應的值。
    更重要的是,在“Path to container, directory or blob”底下的欄位,設置先前實驗container/blob 的名稱。這邊有大小寫之分所以要輸入正確。
    因為我們的檔案有標頭(“x”跟”ywnoise”行),將“File has header row”打勾。然後因為我們不想要 Azure 實驗每次都從Azure blob storage service讀資料,所以勾選 “Use cached results”。
  4. 352
     

  5. 當你點擊”Import Data”模組的輸出端,會再次看到選單中 “Visualize” 無法選取。只要執行實驗後就能點選,資料集也將可使用。

 

3.6 在 Azure SQL Database 存取資料

在先前的實驗,我們使用 TSQL script 建立含值的欄位。現在我們將探討在 Azure SQL Database 存取資料的步驟。

  1. 如同先前部分,在 AML Studio 建立空白的實驗。將模組工具中 “Data Input and Output” 下的”Import Data”模組拖放到實驗畫布中。
  2.  

  3. 設置”Import Data”模組的屬性。 在“Data source”下拉式選單中這次選取“Azure SQL Database”。再一次參照先前實驗中,使用Azure SQL Database 連結字串的值填入剩餘的屬性欄。輸入“Database server name”, “Database name”, “Server user account name” ,這些都在資料庫連結字串底下,可以在 Azure Management Portal 找到。只有密碼不能獲得,要記住並輸入到“Server user account password” 區塊。
  4. 這裡的 “Server user account name”值必須和連結字串一樣,格式就像 username@servername 。最後在“Database Query”底下輸入適當的 TSQL Script 從資料庫取回需求的資料集。本實驗中,我們將輸入:
    SELECT * FROM [dbo].[synth_data]
    361
     

  5. 如果你的資料沒有迅速變動,你可以選擇 “Use cached results”有更高的效能。
  6.  

  7. 同樣的在執行實驗之前,你沒辦法從輸出端查看到資料集

 
 
 
原文:003-lab-data-interact
 
 
翻譯:
jimmy-lu

Comments (0)

Skip to main content