Microsoft Azure Machine Learning Studio

Azure ML 實作筆記 (1)

教學目標

初步了解 Microsoft Azure Machine Learning Studio 預測模型五大步驟之實作重點。

重點概念

最近在挑戰 Microsoft 所提供有關 Microsoft Azure Machine Learning Studio 的 edX 線上課程,首先了解資料科學的基本概念,接著了解機器學習的原理,主要包括分類、迴歸、改善模型、決策樹、類神經、分群和推薦等原理,再來學習機器的應用,主要包括時間序列預測分析、空間分析、文字分析和影像分析,最後參與機器學習的挑戰,這次的主題為學生貸款還款率預測,持續調整模型中,目前評測指標 RMSE < 9.0,期望達到 RMSE < 8.0 的目標。這次的挑戰主要採用 Azure Machine Learning Studio 搭配 SQL 語法進行實作,主要有五大步驟,分別為:

1. 探索資料

請先以 Join Data 模組連接兩個資料集模組,接著再查看基本統計資訊和視覺化直方圖資訊。

2. 挑選特徵值

請先以 Select Column in Dataset 模組挑選有興趣當特徵值的欄位,接著使用 Filter Based Feature Selection 模組挑選相關係數最適當的欄位當特徵值候選。

3. 匯整特徵值

請先以 Clean Missing Data 模組進行有關資料遺失值的清理,主要以 Median 值取代遺失值,接著使用 Apply SQL Transformation 模組,根據預測模型的演算法特性匯整特徵值欄位,因為我們採用 Boosted Decision Regression 機器學習演算法進行實作,所以需將特徵值欄位皆轉為數值資料。

4. 建立模型

請先以 Split Data 模組切分資料集為訓練資料集和測試資料集,接著使用 Train Model 模組或 Tune Model Hyperparameters 模組,兩者差別在於後者會根據評估指標挑選最佳參數配置的預測模型,再來配合 Boosted Decision Regression 模組訓練預測模型。

5. 評分與評估模型

請先以 Score Model 模組以測試資料進行預測模型的評分,接著使用 Evaluate Model 模組進行模型的評估,此時就能夠以 RMSE 的評測指標進行評估。

總結我們其實只需要會 SQL 語法,接著再搭配 Microsoft Azure Machine Learning Studio 強大功能,不用撰寫 R 或 Python 程式碼,就能建立評測很不錯的預測模型,非常適合熟悉資料庫領域,但又想學習建立預測模型的初學者。

相關資源

資料分析 Machine Learning (4)

教學目標

初步了解如何透過 Microsoft Azure Machine Learning Studio 建立第一個機器學習實驗,此篇主要為學習筆記。

重點概念

首先銀行透過客戶過去的資料決定是否允許客戶申請信用卡,輸入為申請人表單,輸出為是否發卡,此時我們一開始卻無法得知規則的函數,所以才需要透過機器學習的方式取得接近規則的函數。基本應用為判斷是否允許客戶申請信用卡,主要有允許和不允許兩大分類,主要屬於二元分類演算法,進階應用為評估客戶信用風險評分等級,主要屬於多元分類演算法,相較於允許或不允許的回答,我們將會有更多的資訊可以針對不同評分等級的客戶最適當的信用卡申請服務。

接著 Mircosoft Azure Machine Learning 是雲端預測性的分析服務,主要可以讓我們快速建立預測模型,並且將其進行部署為可供 Web 存取服務的解決方案。其中我們主要會透過 Microsoft Azure Machine Learning Studio 線上服務進行拖拉點選的方式連接模型,以利快速建立預測模型。我們將會透過 Microsoft Azure Machine Learning Studio 線上服務建立實驗,實驗主要是由資料集所組成,資料集主要是提供資料給分析模組,再將模組連接起來就能夠建構預測分析模型,其中模組是指以資料為基礎所執行的演算法,然而有效的實驗主要有五個特性:

  1. 實驗至少有一個資料集和一個模組。
  2. 資料集只能連接模組。
  3. 模組可以連結資料集或其它模組。
  4. 模組的輸入埠必須要有資料流程的相關連線。
  5. 模組中的必要參數必須進行設定。

再來我們試著建立信用風險評估實驗,主要將資料集的 70% 當成訓練資料集和 30% 為測試資料集,嘗試驗證分類演算法中的促進式決策樹演算法的預測評分等級的準確度,主要有三個階段,分別為建立模型、訓練模型和評分與驗證模型。

階段一: 建立模型

開啟 Microsoft Azure Machine Learning Studio 線上服務建立新的實驗。

將實驗命名為「信用風險評估實驗」。

搜尋關鍵字「credit」,再將「German Credit Card UCI dataset」資料集模組拖曳至實驗畫布。

點選「German Credit Card UCI dataset」資料集模組底部的輸出連接埠,然後選取「Visualize」。

此時我們可以更深入了解資料的呈現情形。

搜尋關鍵字「metadata」,再將「Edit Metadata」資料操作組拖曳至實驗畫布,並且與「German Credit Card UCI dataset」資料集模組進行連接。

點選畫布中的「Edit Metadata」,接著按下畫面右方的「Launch column selector」進行中繼資料欄位選擇。

全選所有欄位移至右方選取欄位中。

將下述欄位名稱參數複製至「New column names」參數中。

1
Status of checking account, Duration in months, Credit history, Purpose, Credit amount, Savings account/bond, Present employment since, Installment rate in percentage of disposable income, Personal status and sex, Other debtors, Present residence since, Property, Age in years, Other installment plans, Housing, Number of existing credits, Job, Number of people providing maintenance for, Telephone, Foreign worker, Credit risk

搜尋關鍵字「split」,再將「Split Data」資料操作模組拖曳至實驗畫布,並且與「Edit Metadata」資料操作模組進行連接,以及點選畫布中的「Split Data」資料操作模組,接著在畫面右方的「Fraction of rows in the first output dataset」中輸入「0.7」,代表左邊輸出連接埠為 70%,右邊輸出連接埠為 30%。

搜尋關鍵字「r script」,再將二個「Execute R Script」R 語言模組拖曳至實驗畫布,並且與「Split Data」資料操作模組進行連接,請皆連接「Dataset 1」輸出埠,以及點選畫布中的「Execute R Script」R 語言模組,接著在畫面右方 R Script 中修改為下述程式碼,請重複同樣的步驟修改另一個 R 語言模組。

1
2
3
4
5
dataset1 <- maml.mapInputPort(1)
data.set<-dataset1[dataset1[,21]==1,]
pos<-dataset1[dataset1[,21]==2,]
for (i in 1:5) data.set<-rbind(data.set,pos)
maml.mapOutputPort("data.set")

按下畫面下方的「Run」按鈕,執行實驗的建立模型階段。

階段二: 訓練模型

搜尋關鍵字「train model」,再將「Train Model」機器學習模組拖曳至實驗畫布,並且與第一個「Execute R Script」R 語言模組進行連接。

搜尋關鍵字「decision tree」,再將「Two-Class Boosted Decision Tree」機器學習模組拖曳至實驗畫布,並且與「Train Model」機器學習模組進行連接。

接著按下畫面右方的「Launch column selector」進行訓練的資料欄位選擇。

按下畫面下方的「Run」按鈕,執行實驗的訓練模型階段。

階段三: 評分與驗證模型

搜尋關鍵字「score model」,再將「Score Model」機器學習模組拖曳至實驗畫布,並且與「Train Model」機器學習模組與第二個「Execute R Script」R 語言模組進行連接。

搜尋關鍵字「evaluate model」,再將「Evaluate Model」機器學習模組拖曳至實驗畫布,並且與「Score Model」機器學習模組進行連接,以及按下畫面下方的「Run」按鈕,執行實驗的評分與驗證模型階段。

點選「Evaluate Model」機器學習模組底部的輸出連接埠,然後選取「Visualize」。

此時我們可以了解評分與驗證模型的結果。


最後結論是我們只要透過 Microsoft Azure Machine Learning Studio 線上服務搭配 R 語言進行資料準備之後,就能直接套用機器學習相關模組進行機器學習的實驗,並且產生評分與驗證模型的結果,主要預設為 ROC 曲線評估分類演算法成效如何,若成效不理想時則我們再針對分類演算法的機器學習模組進行參數調整,以利改善模型。

相關資源

資料分析 Machine Learning (3)

教學目標

初步了解機器學習演算法能夠解決五大類型的問題,此篇主要為學習筆記。

重點概念

首先我們透過觀察學習技能,電腦則是透過資料學習技能,此時學習的過程就是機器學習。主要有三個關鍵決定是否能應用機器學習,分別為改善目標、未知規則和存在資料,例如銀行透過客戶過去的資料決定是否允許客戶申請信用卡,目標為是否允許、規則未知和資料為客戶過去不同類型的資料。此外機器學習服務也是一項資料科學技術,主要協助電腦透過現有的資料學習,以利預測未來行為、結果和趨勢。機器學習服務一般來說可以回答下述五個問題,分別為:

  1. 這是 A 或 B 嗎?
  2. 有多少呢?
  3. 這是如何組織的?
  4. 這很奇怪嗎?
  5. 我現在該怎麼辦?

接著針對不同的問題我們可以透過不同的機器學習演算法回答問題。

這是 A 或 B 嗎?

主要透過機器學習中的分類演算法回答問題,例如: 下列哪一種方式能夠帶來更多的客戶,一張 5 美元的優惠券或一張 25% 的折扣券? 當然回答除了 A 或 B 兩個答案之外,還能回答更多可能的答案,此時分類演算法會選擇可能性最高的答案。常見的應用案例有訊息所表達的情緒如何、哪一個服務客戶會選擇、哪一個方案能夠帶來更多客戶、…等。

有多少呢?

主要透過機器學習中的迴歸演算法回答問題,例如: 公司想要知道下一季的銷售量有多少,此時迴歸演算法將能回答任何要求以數字回答的預測問題。常見的應用案例有評估產品需求、預測銷售數據、分析市場回應、…等。

這是如何組織的?

主要透過機器學習中的分群演算法回答問題,例如: 哪些觀眾喜歡同一種類型的電影或電視劇? 此時分群演算法主要了解資料集的組織結構,一般來說無法已知結果,而是將資料進行分群,接著根據不同群組的特性進行解釋,因此當我們了解資料的組織方式,將能夠進行預測行為和事件。常見的應用案例有執行客戶分群、預測客戶喜好、決定市場價格、…等。

這很奇怪嗎?

主要透過機器學習中的異常偵測演算法回答問題,例如: 信用卡公司會分析客戶的購買行為,當可能發生奇怪事件時,會進行警告,也就是詐欺偵測,其中所謂奇怪事件是指客戶通常不會去商店中購買的商品,或者購買非常昂貴的商品,此時異常偵測演算法將會標記未預期、異常事件或異常行為,並且提供在哪裡尋找問題的線索。常見的應用案例有預測信用卡風險、偵測詐欺、取得異常設備的使用情況、…等。

我現在該怎麼辦?

主要透過機器學習中的增強式學習演算法回答問題,例如: 若是我是一輛自動架駛汽車,當遇到黃燈時,是該煞車或加速呢? 此時增強式學習演算法主要會執行期間搜集資料,同時從試驗結果和錯誤結果中學習,並且決定下一個行為,一般來說增強式學習演算法適用於自動化系統,同時系統必須自動進行許多小型決策。常見的應用案例有智慧機器人。

再來不同的機器學習演算法目前初步分為五大類型為分類演算法、迴歸演算法、分群演算法、異常偵測演算法和增強式學習演算法,但是不同類型的演算法中又有更多不同實作的機器學習演算法,此時我們會考量精確度、時間、線性、參數和特殊情況初步選擇適當的機器學習演算法。

演算法 精確度 時間 線性 參數 特殊情況
分類演算法
羅吉斯迴歸 5
決策樹系 6
決策叢林 6 低記憶體使用量
促進式決策樹 6 高記憶體使用量
類神經網路 9 支援自訂項目
支援向量機器 2 適用於大型特徵集
迴歸演算法
線性 4
貝氏線性 2
決策樹系 6
類神經網路 9 支援自訂項目
分群演算法
K-means 4
異常偵測演算法
支援向量機器 2 適用於大型特徵集
PCA 型異常偵測 3
增強式學習演算法
類神經網路 9 支援自訂項目

最後當我們了解如何透過五大類型的機器學習演算法回答五大類型的問題之後,這時更進一步區分機器學習的類型主要可以分為監督式、非監督式和增強式學習,所謂監督式也就是分類演算法和迴歸演算法,非監式也就是分群演算法和異常偵測演算法,增強式學習會在短時間內收到獎勵訊號,指出決策的好壞程度,並且會根據此修改其策略,以達到最高的獎勵,也就是增強式學習演算法,非常適合機器人和物聯網應用。

相關資源