使用 ML.NET CLI 自動化模型定型

ML.NET CLI 會將 .NET 開發人員的模型產生自動化。

若要使用 ML.NET API 本身 (不利用 ML.NET AutoML CLI),您需要選擇定型器 (實作特定工作的機器學習演算法) 以及要套用至資料的一組資料轉換 (特徵工程)。 每個資料集的最佳管道各有不同,而從所有的選項中選取最佳演算法會增加複雜性。 更進一步,每個演算法都有一組要微調的超參數。 因此,您可以花費數週或數月來最佳化機器學習模型,嘗試尋找特徵工程、學習演算法和超參數的最佳組合。

ML.NET CLI 會使用自動化機器學習 (AutoML) 來簡化流程。

注意

本文參考的是 ML.NET CLI 和 ML.NET AutoML,它們目前為公開預覽版,因此内容可能會有變更。

什麼是 ML.NET 命令列介面 (CLI)?

ML.NET CLI 是 .NET 工具。 安裝完成後,您可以將機器學習工作和定型資料集提供給此工具,它會產生 ML.NET 模型,並執行 C# 程式碼以在應用程式中使用模型。

如下圖所示,可以輕鬆產生高品質的 ML.NET 模型 (序列化模型 .zip 檔案) 以及執行/評分該模型的範例 C# 程式碼。 此外,也產生建立/定型模型的 C# 程式碼,以便您可以研究並重覆所產生「最佳模型」使用的演算法和設定。

在 ML.NET CLI 內工作的 AutoML 引擎

您可以從自己的資料集產生這些資產,不用自行撰寫程式碼,因此即使您已熟悉 ML.NET,也能提升生產力。

ML.NET CLI 目前支援的 ML 工作如下:

  • 分類
  • 迴歸
  • 建議
  • 影像分類
  • 預測
  • train

您可以使用下列命令,根據您的作業系統及其結構來安裝 ML.NET CLI:

dotnet tool install --global mlnet-<OS>-<ARCH>

例如,可以用以下方式安裝 x64 版本的 Windows:

dotnet tool install --global mlnet-win-x64

如需詳細資訊,請參閱安裝 ML.NET CLI 操作指南。

使用方式範例 (分類案例):

mlnet classification --dataset "yelp_labelled.txt" --label-col 1 --has-header false --train-time 10

從命令列進行 ML.NET 分類

您可以用同樣的方式在 Windows PowerShell、macOS/Linux bash 或 Windows CMD 上執行此工具。 不過,表格式自動完成 (參數建議) 不適用於 Windows CMD

產生的輸出資產

CLI 中的 ML 工作命令會在輸出資料夾中產生下列資產:

  • 序列化模型 .zip (「最佳模型」) 準備好用於執行預測。
  • C# 解決方案具有:
    • C# 程式碼,執行/評分產生的模型 (使用該模型以您的終端使用者應用程式建立預測)。
    • C# 程式碼和定型程式碼,用來產生該模型 (適用於學習目的或重新定型模型)。
  • 記錄檔,具有多個已評估之演算法所有反覆項目/清除的資訊,包括其詳細的組態/管線。

前兩項資產可以直接用於終端使用者應用程式 (例如,ASP.NET Core Web 應用程式、服務及桌面應用程式),使用產生的 ML 模型建立預測。

第三項資產,即定型程式碼,會向您顯示 CLI 已使用哪些 ML.NET API 程式碼來定型產生的模型,讓您可以重新定型模型,以及調查和逐一查看 CLI 和 AutoML 在幕後選取了哪些特定的定型器/演算法和超參數。

了解模型的品質

在您使用 CLI 工具產生「最佳模型」後,您會看到適合您目標 ML 工作的品質計量,例如正確性和 R 平方)。

在此為依 ML 工作分組的計量進行摘要,以便您了解自動產生的「最佳模型」品質。

分類模型的計量

下圖顯示 CLI 找到的前五個最佳模型的分類計量清單:

前五名模型的分類計量

正確性是分類問題的熱門計量,但如以下參考所述,正確性不一定總是選取最佳模型的最佳計量。 在某些情況下,您需要評估模型品質和其他計量。

若要探索及瞭解 CLI 輸出的計量,請參閱分類的評估計量

迴歸與建議模型的計量

如果觀察到的值和模型預測值之間差異很小且非偏誤,則迴歸模型非常適合這種資料。 可以使用特定計量評估迴歸。

您會看到 CLI 找到的前五個品質最佳模型計量清單,不過在此案例中,五個最佳模型與回歸 ML 工作有相關:

前五名模型的迴歸計量

若要探索及瞭解 CLI 輸出的計量,請參閱廻歸的評估計量

另請參閱