什麼是 Model Builder?
機器學習是一種使用數學和統計來識別資料模式的技術,不需經過明確的程式設計。 Model Builder 是一種圖形化 Visual Studio 擴充功能,使用 ML.NET 來訓練與部署自訂機器學習模型。
舉例來說,假設您想要預測房屋價格。 如果您使用單一特徵 (例如以平方英呎為單位的住家大小) 來估計價格,您可能會設計會將較大的房屋與較高的價格相互關聯的啟發學習法。
不過,世界從來就不是一直那麼簡單。 許多變數都會影響房屋的價格。 在此案例中,用簡單的啟發學習法來模擬極端案例會變得困難,此時機器學習可能會是更好的解決方案。
機器學習與明確的程式設計規則不同,您會根據實際的觀察,透過歷來資料來從中找出規則。 透過機器學習找到的模式會用來建立稱為模型的成品,藉由之前未發現的新資料來作出預測。
ML.NET 是一種開放原始碼的跨平台機器學習 .NET 架構。 您可以應用現有的 .NET 技能,並使用您熟悉的工具 (例如 Visual Studio) 來訓練機器學習模型。
我可以使用 Model Builder 解決哪些類型的問題?
您可以使用 Model Builder 解決許多常見的機器學習問題,例如:
- 將資料分類:依主題編排新聞文章。
- 預測數值:估計房屋價格。
- 將具有類似特性的項目分組:區隔客戶。
- 建議項目:推薦電影。
- 將影像分類:根據影像內容為影像加上標籤。
- 偵測影像中的物件:偵測十字路口的行人和自行車。
如何使用 Model Builder 來建立模型?
一般而言,將機器學習模型新增至應用程式的程序包含兩個步驟:訓練和使用。
訓練
訓練是指將演算法套用到歷來資料中,建立一套模型來取得基礎模式的程序。 接著您就可以使用模型從新資料中做出預測。
Model Builder 使用自動化機器學習 (AutoML) 為您的資料找出最佳模型。 AutoML 會自動將機器學習套用到資料。 您可以對資料集執行 AutoML 實驗,反覆擷取不同的資料轉換、機器學習演算法與設定,然後選取最佳模型。
就算不具機器學習專業知識,您也能使用 Model Builder。 您只需要準備好資料和想解決的問題。
模型訓練程序包含下列步驟:
- 選擇情境:您想要解決什麼問題? 您選擇的情境會以您的資料及您嘗試預測的內容為依據。
- 選擇環境:您想要在何處訓練模型? 根據可用的計算資源、成本、隱私權需求與其他因素,您可以選擇在本機電腦上或雲端訓練模型。
- 載入資料:載入用於訓練的資料集。 先定義您想要預測的資料行,然後選擇您想要在預測當作輸入使用的資料行。
- 訓練模型:讓 AutoML 根據您選擇的情境,為您的資料集選擇最佳演算法。
- 評估模型:使用計量來評估模型執行以及對新資料作出預測的效果。
耗用
完成機器學習模型的訓練後,就可以用它來進行預測了。 使用是指運用經過訓練的機器學習模型來對之前未看過的新資料做出預測的程序。 透過 Model Builder,您在新舊 .NET 專案中都可以使用機器學習模型。
ML.NET 式機器學習模型已序列化並儲存至檔案中。 因此模型檔案可以載入任何 .NET 應用程式,透過 ML.NET API 進行預測。 這些應用程式類型包括:
- ASP.NET Core Web API
- Azure Functions
- Blazor
- Windows Presentation Foundation (WPF) 或 Windows Forms (WinForms)
- 主控台
- 類別庫
在下一個單元中,我們將會探討在 Model Builder 中訓練機器學習模型的程序。