什麼是模型建立器且其如何運作?

ML.NET 模型建立器是直覺式圖形化 Visual Studio 延伸模組,其用於建置、定型和部署自訂機器學習模型。

模型建立器會使用自動化的機器學習服務 (AutoML) 來探索不同機器學習服務演算法和設定,協助您找出最適合您案例的組合。

您不需要有機器學習專業知識也能使用模型建立器。 您只需要一些資料和待解決的問題。 模型建立器會產生程式碼,將模型新增至您的 .NET 應用程式。

Model Builder Scenarios

注意

模型產生器目前為預覽版。

建立模型產生器Project

當您第一次啟動模型產生器時,會要求您命名專案。 這會在專案內建立組 mbconfig 態檔。

檔案 mbconfig 會持續追蹤您在模型產生器中所做的一切,讓您重新開啟會話。

定型之後,會在 *.mbconfig 檔案底下產生三個檔案:

  • Model.consumption.cs: 此檔案包含 ModelInputModelOutput 架構,以及 Predict 用於取用模型的函式。
  • Model.training.cs: 此檔案包含定型管線 (資料轉換、演算法、演算法、演算法超參數) 模型產生器選擇來定型模型。 您可以使用此管線來重新定型模型。
  • Model.zip:這是序列化的 zip 檔案,代表您定型的 ML.NET 模型。

當您建立檔案 mbconfig 時,系統會提示您輸入名稱。 此名稱會套用至取用、定型和模型檔案。 在此情況下,使用的名稱為 Model

案例

您可以在模型建立器中放入許多不同的案例,以產生應用程式的機器學習模型。

案例是您想要使用資料進行的預測類型描述。 例如:

  • 根據歷史銷售資料預測未來的產品銷售量
  • 根據客戶評論將人氣分類為正面或負面
  • 偵測銀行交易是否為詐騙
  • 將客戶意見反應問題路由至公司的正確小組

每個案例都會對應至不同的機器學習工作,包括:

  • 二元分類
  • 多元分類
  • 迴歸
  • 叢集
  • 異常偵測
  • 次序
  • 建議
  • 預測

例如,將情感分類為正面或負面的案例會落在二元分類工作中。

如需 ML.NET 所支援之不同ML工作的詳細資訊,請參閱ML.NET 中的機器學習工作

哪種機器學習服務案例適合我?

在 [模型產生器] 中,您必須選取案例。 案例的類型取決於您嘗試進行的預測類型。

資料分類

分類是用來將資料分類為類別。

Diagram showing examples of binary classification including fraud detection, risk mitigation, and application screening

Examples of multiclass classification including document and product classification, support ticket routing, and customer issue prioritization

值預測

值預測屬於回歸工作,可用來預測數位。

Diagram showing regression examples such as price prediction, sales forecasting, and predictive maintenance

影像分類

影像分類可用來識別不同類別的影像。 例如,不同類型的地形或動物或製造瑕疵。

如果您有一組影像,而且想要將影像分類成不同的類別,您可以使用影像分類案例。

物件偵測

物件偵測可用來找出並分類影像內的實體。 例如,尋找並識別影像中的汽車和人員。

當影像包含多個不同類型的物件時,您可以使用物件偵測。

建議

建議案例會根據其喜好與其他使用者的相似程度,預測特定使用者的建議專案清單。

當您有一組使用者和一組「產品」時,您可以使用建議案例,例如購買的專案、電影、書籍或電視放映,以及一組使用者的「評等」產品。

環境

視案例而定,您可以在本機在機器或 Azure 上的雲端中定型機器學習模型。

在本機定型時,您會在電腦資源的條件約束內工作, (CPU、記憶體和磁片) 。 當您在雲端中定型時,您可以相應增加資源以符合案例的需求,特別是針對大型資料集。

除了物件偵測之外,所有案例都支援本機 CPU 定型。

影像分類支援本機 GPU 訓練。

影像分類和物件偵測支援 Azure 訓練。

資料

選擇案例之後,模型產生器會要求您提供資料集。 資料用來定型、評估及選擇最適合您案例的模型。

Diagram showing Model Builder steps

模型產生器支援 .tsv、.csv、.txt格式以及SQL資料庫格式的資料集。 如果您有.txt檔案,則資料行應該以 ,;\t 分隔。

如果資料集是由影像所組成,則支援的檔案類型為 .jpg.png

如需詳細資訊,請參閱 將定型資料載入模型產生器

選擇要預測的輸出 (標籤)

資料集是定型範例資料列和屬性資料行的資料表。 每個資料列都有:

  • 標籤 (您想要預測的屬性)
  • 特性 (作為輸入用來預測標籤的屬性)。

針對房價預測案例,可能的特性為:

  • 房屋的坪數
  • 房間和衛浴數量
  • 郵遞區號

標籤是坪數列、房間和衛浴值,以及郵遞區號資料列的歷史房價。

Table showing rows and columns of house price data with features consisting of size rooms zip code and price label

範例資料集

如果您還沒有自己的資料,請嘗試下列資料集之一:

案例 範例 資料 標籤 功能
分類 預測銷售異常 產品銷售資料 產品銷售 Month
預測網站批註的情感 網站留言資料 標籤 (負面人氣時為 0,正面人氣時為 1) 留言、年度
預測詐騙信用卡交易 信用卡資料 類別 (詐騙時為 1,否則為 0) 數量、V1-V28 (匿名特性)
預測GitHub存放庫中的問題類型 GitHub 問題資料 區域圖 標題、描述
值預測 預測出租車車資價格 計程車費用資料 費用 行車時間、距離
影像分類 預測花的類別 花影像 花花類型:花花、dandelion、roses、擷取、Tulips 影像資料本身
建議 預測某人喜歡的電影 電影評等 使用者、電影 評等

Train

選取您的案例、環境、資料和標籤之後,模型產生器就會訓練模型。

什麼是定型?

定型模型建立器用來教導模型如何回答案例問題的自動化程序。 一旦定型,模型就可以使用之前未見過的輸入資料來建立預測。 例如,如果您要預測房價且有新屋上市,您就可以預測其銷售價格。

因為模型建立器使用自動化的機器學習服務 (AutoML),所以它不需要任何輸入,也不需要您在定型期間調整。

定型時間應該多長?

模型產生器會使用 AutoML 來探索多個模型,以找出效能最佳的模型。

較長的定型期間可讓 AutoML 探索更多具有更多設定範圍的模型。

下表摘要說明本機電腦上一組範例資料集取得良好效能所花費的平均時間。

資料集大小 定型的平均時間
0 - 10 MB 10 秒
10 - 100 MB 10 分鐘
100 - 500 MB 30 分鐘
500 - 1 GB 60 分鐘
1 GB+ 3+ 小時

這些數位只是指南。 定型的確切長度取決於:

  • 用來作為模型輸入的資料行 (特徵數目)
  • 資料行的類型
  • ML工作
  • 用於定型的電腦 CPU、磁片和記憶體效能

通常建議您使用超過 100 個數據列做為資料集,且可能不會產生任何結果。

評估

評估是測量模型良好程度的程式。 模型產生器會使用定型的模型,以新的測試資料進行預測,然後測量預測的效果。

模型建立器會將定型資料分割為定型集和測試集。 定型資料 (80%) 用來定型模型,而測試資料 (20%) 則保留用於評估模型。

如何?瞭解我的模型效能嗎?

案例會對應至機器學習工作。 每個ML工作都有自己的一組評估計量。

值預測

值預測問題的預設計量是 RSquared,RSquared 的值介於 0 到 1 之間。 1 是最佳的可能值,換句話說,RSquared 的值越接近 1,您的模型執行越好。

報告的其他計量,例如絕對損失、平方損失和 RMS 損失是額外的計量,可用來瞭解您的模型執行方式,並將其與其他值預測模型進行比較。

分類 (2 個類別)

分類問題的預設計量是精確度。 精確度會定義模型對測試資料集進行的正確預測比例。 越接近 100% 或 1.0 越好。

其他回報的計量,例如曲線底下的 AUC (Area) ,這會測量真肯定率與誤判率應該大於 0.50,才能接受模型。

F1 分數等其他計量可用來控制精確度與召回率之間的平衡。

分類 (3 個以上的類別)

多重類別分類的預設計量為 Micro Accuracy。 微精確度越接近 100% 或 1.0 越好。

多類別分類的另一個重要計量是宏精確度,類似于微精確度,越接近 1.0 越好。 若要思考這兩種類型的精確度,最好是:

  • 微精確度:傳入票證的分類頻率為何?
  • 宏精確度:對於平均小組,其小組的傳入票證正確頻率為何?

評估計量的詳細資訊

如需詳細資訊,請參閱模型評估計量

改善

如果您的模型效能分數不如預期,您可以:

  • 延長定型時間。 使用更多時間,自動化機器學習引擎會使用更多演算法和設定進行實驗。

  • 新增更多資料。 有時候資料量不足以定型高品質的機器學習模型。這特別適用于具有少量範例的資料集。

  • 平衡資料。 針對分類工作,請務必平衡所有類別的定型集。 例如,如果您有四個類別的 100 個定型範例,有 90 筆記錄使用前兩個類別 (tag1 和 tag2),只有剩餘的 10 筆記錄使用其他兩個類別 (tag3 和 tag4),則資料失衡可能會導致模型難以正確預測 tag3 或 tag4。

取用

在評估階段後,模型建立器會輸出模型檔案,以及可用來將模型新增至應用程式的程式碼。 ML.NET 模型會儲存為 ZIP 檔案。 載入並使用模型的程式碼會新增為解決方案中新專案。 模型建立器也會新增範例主控台應用程式,您可以執行它以查看運行的模型。

此外,模型產生器可讓您選擇建立取用模型的專案。 模型產生器目前會建立下列專案:

  • 主控台應用程式: 建立 .NET Core 主控台應用程式,以從您的模型進行預測。
  • Web API:建立 ASP.NET Core Web API,讓您透過網際網路取用模型。

下一步

安裝模型建立器 Visual Studio 延伸模組

請嘗試價格預測或任何迴歸案例