Azure學習筆記 『誰說機器學習只能透過Coding實現呢?』篇(Azure Machine Learning Studio Classic)

Alex Tsai
9 min readJan 12, 2020

--

你能想像用類似疊積木的方式就能實踐出一個機器學習解決方案嗎?Azure Machine learning studio就是你要找的答案!

Azure Machine Learning Studio Classic

最近玩了一下Azure Machine Learning Studio classic這個服務,感覺發現新大陸!那Azure Machine Learning Studio 到底是何方神社,能幫助大家解決什麼問題呢?

本篇文章將提及:
。知道什麼是Azure Machine Learning Studio classic
。Azure Machine Learning Studio classic 能解決什麼問題
。該如何選用合適的Model
。實作預測電玩銷售量的解決方案
。Machine Learning Studio Classic 的後續進階應用

Azure Machine Learning Classic

Azure Machine Learning Studio Classic 是一個以流程圖實踐機器學習的工具。適合解決小規模的機器學習問題、機器學習的入門。

Azure Machine Learning Studio 有四個特色
。多元的機器學習解決方案:
流程圖、流程圖+程式語言模組、Jupter Notebook攥寫Python (code需求程度由左至右遞增)
。社群支援及內建多組模板:
提供各類解決方案組模板及完整教學、
。輕鬆部署解決方案到Web service:
當完成一系列步驟Azure Machine Learning Studio將自動打包成Api、Excel的巨集供他人使用
。多組預設好的機器學習模型

接下來介紹Azure Machine Learning Studio Classic能幫助我們解決什麼樣的問題。
1.Anomaly Detection(異常偵測)
適用於:行為分析、品質檢測、潮流趨勢
2.Classification(分類)
適用於:信件分類、文字辨識、物體辨識
3.Clustering(分群)
適用於:客戶分群
4.Recommendation(推薦)
適用於:影片推薦、餐點推薦
5.Regression(線性迴歸)
適用於:銷售量預測、股市預測
6.Statical Functions(統計功能)
適用於:數據統計
7.Text Analytics(文字分析)
適用於:文字的情感分析、重要的字詞、文字的資訊
8.Computer Vision(電腦視覺)
適用於:影像分析
我想大家應該清楚知道該選用什麼類別來解決自己的問題,但模型那麼多我該選用哪個?有沒有一個明確的建議呢?

下圖的模型選用建議明確的告訴我們什麼時候該用什麼

Model 的選用

你已經知道自己該選擇什麼類別的model來解決對應的問題。那我們就開始Hands-on Lab 吧~

Hands-on Lab 步驟:
1.資料的引入(從本機端上傳、以url 方式載入、從Azure儲存體服務導入資料、等等)
2.資料的前處理(選擇欄位、清除空白資料、以平均值填入資料空白處等等…….)
3.資料訓練集與測試集資料拆分(7:3、8:2(測試:驗證)PS 經驗法則)
4.訓練模型
5.部署(API、Excel 巨集)

首先我們先到Kaggle 下載要分析的資料。(https://www.kaggle.com/gregorut/videogamesales

(網站連結)

再來就是註冊免費帳號(https://studio.azureml.net/

登入畫面
登入畫面

點選左側的DATASETS開始,再按左下角的NEW。

把剛剛下載且解壓縮好的vgasales.csv檔透過點選的方式上傳到DataSet中

再來我們點選EXPERIMENTS,再按下左下角的NEW新增一個新的實驗

登入後畫面

點選Blank Experiment

從Saved Datasets 中的My Datasets拉出剛剛上傳好的CSV檔案

從Data Transformation選擇Select Columns in Dataset

把vgsales.csv連入模塊,然後點選右側編輯欄Lauch column selector進入選用邏輯視窗(把other_Sales、JP_sales、EU_sales、NA_Sales排除在外)

All COLUMNS:顯示所有欄位,不管有沒有被選用
NO COLUMNS:只顯示被選用的欄位

接下來就是資料及的拆分,從Data Transofromation中的Sample and Split選用Split Data模塊,把上方的Select Columns in Dataset模塊連入,然後右側編輯欄輸入o.7或是0.8。(這兩個數值代表資料被拆分的百分比)

0.7或0.8的資料將拆分到左側變成獨立的資料集,剩餘的則分配於右側依樣獨立成一個資料集。

從Machine Learning中的Train集合中選定Train Model模塊並把Split Data連入右側資料入的連接處。

從右側編輯欄的Launch column Selector 選定Global_Sales做為預測的值(只能選定單一值)

接下來開始要選定訓練時要用的模型,我們從Machine Learning的Regression中選取Linear Regression.(由於我們要預測的是數值因此選用Regression的類別),所有的值都選用預設值

L2值的調整是要防止訓練資料時過度擬合或是欠擬合,以降以低資料預測時的精準性https://docs.microsoft.com/zh-tw/archive/msdn-magazine/2015/february/test-run-l1-and-l2-regularization-for-machine-learning

Random number seed值的用意在於,透過輸入給定一個值,標記目前訓練的結果,透過輸入同樣數值就能回復標記時的訓練結果。(類似書籤的概念)

到Machine Learning 中的 Score 欄位選擇Score Model,並把Train Model與Split Data 分別從左邊及右邊連入Score Model 模塊。

最後點選下方Run開始編譯

點選Score Model下方連接處中的visualize功能我們可以看到預測的結果,我們可以看到預測結過不盡理想,沒關係我們可以透過兩個方法改善這樣的結果。

方法一:選用其他的model
方法二:調整數(拆分的資料比重、L2參數等等……)

我選用方法一,把Model改成Possion Regression,出來的結果有著顯著的改善。

最後我們可以透過SET UP WEB SERVICE中的Predictive Web Service,之後系統會自動開啟一個Predictive 的分頁,並且把訓練的model好的model打包成一個模塊、新增Web Service Input模塊(供使用者自行輸入變量)與最後把預測結果輸出到Web service output模塊呈現。

再按一次DEPLOY WEB SERVICE後畫面就會跳轉到一下畫面。

在點選藍色TEST就可以直接跟API互動

恭喜你學會Machine learning Studio classic基本用法若激起你的學習慾還想學更多,https://gallery.azure.ai/這個平台可以學習到更多Machine learning Studio 的應用。

新增EXPRMENT時的功能欄,也提供許多模板可以參考使用。

謝謝大家耐心的閱讀希望本篇的分享能激起您對機器學習的興趣。

--

--

Alex Tsai
Alex Tsai

Written by Alex Tsai

Dream of becoming a Cyber Security Professional.

No responses yet