使用Azure ML 的視覺化工具

了解如何在不編寫代碼的情況下進行進行機器學習(以下稱ML)的建立和發布模型。

使用Azure ML Desugner來建立迴歸模型(Regression model)

在本節我們將會識別使用迴歸模型的場景是甚麼,接下來我們將會用Azure Machine Learning designer來訓練一個迴歸模型。然後使用回歸模型進行推理,最後把這個模型佈署成一個服務。

回歸是ML的一種形式,用於理解變量(variables)之間的關係以預測期望的結果。 回歸是根據variables(或features)預測numeric label(結果)。 例如,一家賣衣服的公司可能會使用衣服的features(例如性別、年齡、節日或天氣或季節等)來預測其可能的售價。 在這種情況下,衣服的特性就是features,售價就是label。

回歸是監督式ML技術的一個示例,在這個技術中,我們使用包含label的features和已知值的資料來訓練模型,以便模型學習將features組合與label相匹配。 然後,在完成訓練後,我們就可以使用經過訓練的模型為還沒有label的資料貼標籤。

可以用在迴歸模型的場景如:

  • 使用房屋的features(例如面積和房間數量)來預測房價。
  • 利用農場條件的features,例如天氣和土壤質量,來預測作物產量。
  • 使用過去活動的features(例如廣告日誌)來預測未來的廣告點擊。

也就是說,回歸是使用資料多個features來預測一個結果。

使用Azure Machine Learning studio來建模

Azure ML的核心是一種用於訓練和管理ML模型的服務,為此我們需要運算資源來作行訓練過程。在 Azure Machine Learning studio中,我們可以管理資料科學作業的運算目標。 我們可以創建四種運算資源:

  • Compute Instances: 資料科學家用來處理資料和模型的開發工作站。
  • Compute Clusters: 可擴展的虛擬機集群,用於需要運作的量能來運作代碼。
  • Inference Clusters: 使用訓練過的模型的預測服務
  • Attached Compute: 連接到現有的 Azure 運算資源,例如虛擬機或 Azure Databricks 群集

Azure Machine Learning designer

在 Azure Machine Learning studio中,有多種方法可以創建立回歸模型。 一種方法是使用稱為Designer的圖形化介面,可以使用它來訓練、測試和部署ML模型。 拖放界面使用明確定義的輸入和輸出,可以共享、重複使用和版本控制。

每個designer project(稱為pipeline)都有一個左側功能面板和右側的空白畫面。 要使用designer,我們需要確定模型所需的building block或component,將它們拖放到空白畫面上,然後運作ML job。

Pipeline可以讓我們可以跨專案和使用者來管理和重複使用複雜的ML工作流程。 pipeline從我們要從中訓練模型的訓練資料開始。 每次運作pipeline時,pipeline的配置及其結果都會作為pipeline存儲在我們的workspace。

Azure ML component封裝了ML pipeline中的一個步驟。 我們可以將component視為一種寫程式功能和 Azure ML pipeline的building block。 在pipeline project中,我們可以從下圖左側功能面板的Assets選項的data與components。

Azure ML job針對指定的運算目標執行任務。 job可以系統性追蹤我們的ML實驗和工作流程。 建立job後,Azure ML 會維護這個job的運作記錄。 所有job的運作記錄都可以在 Azure ML studio 中看到。

回歸的步驟

以下為一般訓練與評估迴歸ML模型的步驟:

  1. 準備資料:對資料進行清洗、轉換、特徵工程等預處理。
  2. 通常將資料分為:訓練用及驗證用
  3. 評估效能:比較模型的預測與已知標籤的接近程度
  4. 部署預測模型

PS: 至於甚麼是特徵工程,可參閱本部落格機器學習的設計模式 — 資料的呈現一文。

我們可以使用Azure machine learning designer進行第一步驟的資料準備階段(如清理不需要的資料、特徵工程或join資料表等)。

要訓練迴歸模型,要有1)歷史特徵2)已知label value的資料集。 label會有一個數量,是一個我們會餵給模型的值。通常的做法是我們將資料切成幾個部分,只將一部分用來訓練模型,其他部分則用來測試訓練後的模型。 我們可以使用Designer的Score Model來產生預測的class label value。

接下來就是評估效能(也就是預測的準確度)。評估效能的指標與方法有非常多種(如下所示)

  • Mean Absolute Error (MAE):預測值與真實值之間的平均差異。 這個值基於與標籤相同的單位。 該值越低,模型的預測效果越好
  • Root Mean Squared Error (RMSE):測值和真實值之間的均方差的平方根。 其結果是基於與標籤相同的單位的度量。 與 MAE相比,差異越大表示單一誤差的方差越大(例如,一些誤差非常小,而另一些誤差很大)。
  • Relative Squared Error (RSE):0 和 1 之間的相對度量,基於預測值和真實值之間的差值的平方。 該指標越接近 0,模型的效能就越好。 因為這個指標是相對的,所以它可以用來比較不同單位的標籤的模型。
  • Relative Absolute Error (RAE):基於預測值和真實值之間的絕對差異的 0 和 1 之間的相對度量。 該指標越接近 0,模型的性能就越好。 與 RSE 一樣,此指標可用於比較標籤採用不同單位的模型。
  • Coefficient of Determination (R2):此指標通常稱為 R 平方,它總結了模型解釋了預測值和真實值之間的差異程度。 該值越接近 1,模型的效能就越好。

我們可以在Evaluate_Model按滑鼠右鍵來查看效能指標(如下圖)。

最後我們需要部署該模型到生產環境。 為了將我們的模型能一直處於預測服務的狀態,我們需要建立和部署inference pipeline。

要部署pipeline,我們必須先將training pipeline轉換為real-time inference pipeline。 這個過程會刪除訓練組件並加上Web service的輸入和輸出以處理要預測的請求。

inference pipeline在資料準備階段用的是跟在訓練模式一樣的資料轉換程序。 然後,它使用經過訓練的模型根據其特徵推斷或label value。 這個模型將構成預測服務的基礎,我們就可以發布該服務供前端的應用程序使用。

建立 inference pipeline後,我們可以將其部署為endpoints。 在endpointd頁面中,我們可以看到部署的詳細資訊、使用範例資料測試pipeline,以及找到用於將pipeline服務連接到client application的credentials。

在“test”頁籤上,我們可以使用 JSON 格式的樣本資料測試已部署的服務。 它是一種工具,可用於快速檢查模型是否按預期運行。

至於credentials可以在Consume頁籤上找到

使用Azure ML Desugner來建立分類模型(Classification Model)

分類是監督式ML的一個種,在這個技術中,我們使用已知道features與lable之間關係的資料集來訓練模型,以便模型學會features與lable之間的關係是甚麼,繼而可以推論當接收到的資料沒有這一類的關係時如何推敲出來。

分類是機器學習的一種形式,用於預測項目屬於哪個分類或類別。 這種機器學習技術可以應用於二元(Yes or No)和多元(風險是高
/中/低)場景。

訓練分類模型的步驟基本上與迴歸模型一樣。不一樣的地方在於,分類模型使用的是混淆矩陣(confusion matrix)來評估效能。在預測兩個可能值之一的二元分類模型中,混淆矩陣是一個 2x2 表格,顯示類別 1 和類別 0 的預測值和實際值計數。它將模型的結果分為四種類型的結果。 例如判斷病人有沒有得到心臟病,這些結果可能如下顯示:

  • True Positive(陽性)
  • False Positive(偽陽性)
  • False Negative(偽陰性)
  • True Negative(陰性)

假設我們有 100 名病人的資料。 我們建立了一個模型,預測病人在 15% 的情況下沒有心臟病,因此模型預測 15 人患有心臟病,並預測 85 人沒有心臟病。 實際上,假設有 25 人確實患有心臟病,而 75 人實際上沒有心臟病。 此信息可以在混淆矩陣中如下呈現:

對於多類分類模型(其中有兩個以上可能的類別),使用相同的方法將實際值和預測值計數的每個可能組合做成表格 — 因此具有三個可能類別的模型會產生一個 3x3 矩陣。

可以從混淆矩陣中導出的指標包括:

  • Accuracy:正確預測的數量(陽性 + 陰性)除以預測總數
  • Precision: 陽性數除以(陽性加偽陽性)
  • Recall:正確識別陽性的比例 — 陽性數除以(陽性數加偽陰性數)
  • F1 Score:一種綜合指標,基本上結合了precision和recall

在這些指標中,Accuracy可能是最直觀的。 但是,我們需要謹慎使用accuracy來衡量模型的效能。 使用預測 15% 的病人患有心臟病的模型,但實際 25% 的病人患有心臟病時,我們可以計算以下指標:

The accuracy of the model is: (10+70)/ 100 = 80%.

The precision of the model is: 10/(10+5) = 67%.

The recall of the model is 10/(10+15) = 40%

閥值(threshold)的選擇

分類模型預測每個可能類別的概率。 換句話說,該模型計算每個預測標籤的可能性。 在二元分類模型的情況下,預測概率是 0 到 1 之間的值。預設情況下,預測概率包括(或高於) 0.5 導致類別預測為 1,而低於此閾值的預測意味著有更大的概率否定的預測(記住所有類別的概率加起來為 1),因此預測類別將為 0。

Designer 有一個threshold slider,用來查看模型效能如何根據設定的閾值發生變化。

ROC 曲線和 AUC 指標

recall的另一個術語是 True positive rate,它有一個相應的指標 False positive rate,它衡量的是被錯誤識別為陽性的錯誤數與實際錯誤數的比較。 針對 0 到 1 之間的每個可能閾值將這些指標相互繪製成一條曲線,稱為 ROC 曲線(ROC 代表receiver operating characteristic,但大多數資料科學家稱之為 ROC 曲線)。 在理想模型中,曲線會一直向上延伸到左側並穿過頂部,從而覆蓋圖表的整個區域。 曲線下則是AUC指標,曲線下的面積越大(可以是 0 到 1 之間的任何值),模型的效能就越好。 我們可以在 Evaluation Results中查看 ROC 曲線。

使用Azure ML Desugner來建立clustering model(群聚模型)

群聚是機器學習的一種形式,用於根據相似的特徵(features)將相似的項目分組到一群中。 聚類是非監督式機器學習的一種,訓練模型的方式純粹根據項目的特性或特徵將項目分成集群。 也就是說我們不會給模型已知features與lables之間關係的資料集。

步驟

群聚分析的步驟與上述兩種的監督式ML相同,資料可能還是要經過清理、轉換等流程。要訓練群聚模型,我們還是需要一個資料集,其中包含對要群聚事物的多個觀察結果,包括可用於確定各個案例之間相似性的數字特徵,這將有助於將它們分成每一群。

要訓練群聚模型,我們要使用的是群聚演算法(clustering algorithm),我們只使用為分群選擇的特徵(features)。 我們一樣需要將資料分為訓練與驗證用。K-Means Clustering演算法將事物分組為我們指定cluster(or centriods) — 一個稱為 K 的值。

K-Means Clustering演算法的作業流程如下:

  1. 將 K 坐標初始化為 n 維空間中稱為centroids的隨機選擇點(其中 n 是feature vectors中的維度數量)。
  2. 將feature vectors繪製為同一空間中的點,並將每個點分配給其最近的centroids。
  3. 將centroids移動到分配給它的點的中間(基於平均距離)。
  4. 移動後將點重新分配到它們最近的centroids。
  5. 重複步驟 3 和 4,直到群聚分配(cluster allocations)穩定或指定的迭代次數已完成。

我們可以使用Designer的Assign Data to Clusters組件將資料分組到集群中。 連接所有組件後,我們就開始運行實驗來訓練模型。

評估效能

這評估指標可以幫助我們評估模型對群聚的分離程度。 它們包括每個集群的一行指標,以及一個用於組合評估的summary row。 每個row中的指標是:

  • Average Distance to Other Center:這會呈現集群中的每個點與所有其他集群的centroid的平均距離
  • Average Distance to Cluster Center:這呈現集群中的每個點與cluster centroid的平均距離
  • Number of Points:
  • Maximal Distance to Cluster Center:每個點與這一群很相近點的centroid之間的距離的最大值。 如果這個數字很高,集群可能會很分散。 這個統計資料與Average Distance to Cluster Center相結合,可幫助我們確定群聚的分佈

--

--

運用雲端平台加速企業的數位轉型

我們協助您駕馭名為"雲端運算"的怪獸,馴服它為您所用。請參閱https://myppt.cc/eFCUF2